Как выставить PYTHONIOENCODING чтобы получить читаемый юникодный текст в cmd.exe?

Python 2.7.2, Windows 7, cmd.exe.

Есть строка <type 'unicode'>. При распечатке её в консоль естественно вываливается эксепшн. Мои действия:

SET PYTHONIOENCODING=windows-1251
Строка распечатывается, но вот в таком виде: «яюсыруюфрЁшЄ№ ртЄюЁр» — то есть 866 читается как 1251 (или наоборот).

SET PYTHONIOENCODING=сp866
Снова эксепшн.

SET PYTHONIOENCODING=utf-8
Получаю ╨Ъ╨╛╨╝╨┐╨╛╨╖╨╕╤В╨╛╤А╤Л

Вопрос: как получить читаемый текст в консоли? Желательно без iconv'а.
  • Вопрос задан
  • 5410 просмотров
Пригласить эксперта
Ответы на вопрос 4
@marklarius
print x.encode("utf-8")
Ответ написан
EndUser
@EndUser
перенастроить консоль налету через команду chcp?
Ответ написан
@MikhailEdoshin
Вам принципиально нужна консоль Windows? А то поставьте cygwin, там консоль в комплекте, с настройкой в том числе и кодировки.
Ответ написан
Mithgol
@Mithgol
К вышесказанному прибавлю, что очень многое зависит от того, были ли выставлены точечные шрифты в консоли:

[скриншот свойств консоли]

Если да, то вывод текста за пределами диапазона символов однобайтовой кодировки такого шрифта не возможен в любом случае, даже если пользоваться уникодом и саму консоль командою chcp 65001 переключить на уникод. Когда попросту в самом шрифте недостаёт желаемых символов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы