Форум сайта python.su
0
bismigalis
Я понимаю, что в cp437 нет кириллицы.. Только вот как изменить кодировку?
Запускаю в cmd.
PS Оо.. Кажется это я д***б..
В IDLE под виндой:
>>> f=open('C:/test/example.txt','r')
>>> s=f.read()
>>> print s
\\u0410\\u043b\\u0435\\u043a\\u0441\\u0430\\u043d\\u0434\\u0440
>>> print s.decode('unicode-escape')
\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440
>>> s=s.replace('\\\\','\\')
>>> print s.decode('unicode-escape')
Александр
>>> Отредактировано maxfox (Дек. 10, 2013 10:57:04)
Офлайн
47
а в IDLE
sys.stdin.encoding sys.stdout.encoding
Офлайн
0
bismigalis
>>> import sys
>>> sys.stdin.encoding
'cp1252'
>>> sys.stdout.encoding
'cp1252'
Офлайн
47
непонятно только почему cp437, вроде должна быть cp866
в винде вроде командой chcp можно менять коде пейдж консоли, попробуй
chcp 866
Отредактировано bismigalis (Дек. 10, 2013 11:27:57)
Офлайн
0
Ура! Поменял локаль в винде (почему-то был уверен, что с ней все ок). stdout стал cp866, все выводит нормально.
Всем огромное спасибо за помощь!
Офлайн