Найти - Пользователи
Полная версия: кодировка в curses
Начало » Python для новичков » кодировка в curses
1
Alex_Kutsan
как положено стоит в начале
# coding: utf8

но вот эта функция
screen.addstr(iy, ix, c)
если c будет русской буквой, выкидывает мне замечательные нечитабельные иероглифы в перемешку с русскими буквами
�~�~ м о ж е�~Bе  �~�~о п �~о -        │
│ threadov, v to vremya kak ya tebe pi �~и �~а �~�~? Я на п �~и м� - │
│ shu ti mozgesh pisat mnie, no yane ot ��~ не м ог �~, �~�~о де - │
│ vechu, ya ne bot, yha trenirovka mnog ла�~�~ �~па�~а�~ива�~ │
│ ozadachnosti, i proroditel chata v bu ва�~�~�~�~A к�~A �~а�~�~C �~C- │
│ dushem �~C�~в�~A �~A�~A�~A�~Cв
В одной части экрана писал англ буквами в другой русскими.
tmp_a6367100
следущий код вызывает описываемую ошибку:

#!/usr/bin/env python2
#-*- coding: UTF-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

import curses

def main():
curses.initscr() # начало
try:
iy = 5
ix = 10
c = 'Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства.'

screen = curses.newwin(15, 40, 3, 4)
screen.addstr(iy, ix, c.encode('UTF-8'))
screen.refresh()

screen.getch() # Press Any Key
finally:
curses.endwin() # конец

if __name__ == '__main__':
error = main()

if error:
exit(error)
tmp_a6367100
а вот как символы показалиь :-) :-)

#!/usr/bin/env python2
#-*- coding: UTF-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

import curses
import locale # ДОБАВИТЬ ЭТО!

def main():
locale.setlocale(locale.LC_ALL, '') # ДОБАВИТЬ ЭТО!
curses.initscr() # начало
try:
iy = 5
ix = 10
c = 'Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства.'

screen = curses.newwin(15, 40, 3, 4)
screen.addstr(iy, ix, c.encode('UTF-8'))
screen.refresh()

screen.getch() # Press Any Key
finally:
curses.endwin() # конец

if __name__ == '__main__':
error = main()

if error:
exit(error)


но на форумах пишут что хоть с ВЫВОДом проблемы исчезают, но не факт что ВВОД тоже будет корректным :-D :-D
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB