Найти - Пользователи
Полная версия: Как декодировать строку? (HElp please)
Начало » Python для новичков » Как декодировать строку? (HElp please)
1 2 3
maxfox
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')
Александр
>>>

И тем не менее, запуская скрипт в винде, я получаю ошибку. Свою задачу я могу решить, используя IDLE, но объясните идиоту - как запустить скрипт с нужной кодировкой в stdout?
bismigalis
а в IDLE
sys.stdin.encoding
sys.stdout.encoding
что показывают?
maxfox
bismigalis

>>> import sys
>>> sys.stdin.encoding
'cp1252'
>>> sys.stdout.encoding
'cp1252'
bismigalis
непонятно только почему cp437, вроде должна быть cp866

в винде вроде командой chcp можно менять коде пейдж консоли, попробуй
chcp 866
maxfox
Ура! Поменял локаль в винде (почему-то был уверен, что с ней все ок). stdout стал cp866, все выводит нормально.

Всем огромное спасибо за помощь!
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