Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 10, 2013 10:47:38

maxfox
Зарегистрирован: 2013-07-27
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Как декодировать строку? (HElp please)

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?

Отредактировано maxfox (Дек. 10, 2013 10:57:04)

Офлайн

#2 Дек. 10, 2013 10:56:59

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Как декодировать строку? (HElp please)

а в IDLE

sys.stdin.encoding
sys.stdout.encoding
что показывают?

Офлайн

#3 Дек. 10, 2013 10:58:14

maxfox
Зарегистрирован: 2013-07-27
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Как декодировать строку? (HElp please)

bismigalis

>>> import sys
>>> sys.stdin.encoding
'cp1252'
>>> sys.stdout.encoding
'cp1252'

Офлайн

#4 Дек. 10, 2013 11:06:10

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Как декодировать строку? (HElp please)

непонятно только почему cp437, вроде должна быть cp866

в винде вроде командой chcp можно менять коде пейдж консоли, попробуй

chcp 866

Отредактировано bismigalis (Дек. 10, 2013 11:27:57)

Офлайн

#5 Дек. 10, 2013 11:26:48

maxfox
Зарегистрирован: 2013-07-27
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Как декодировать строку? (HElp please)

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

Всем огромное спасибо за помощь!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version