Задать вопрос

Как выставить 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'а.
  • Вопрос задан
  • 6351 просмотр
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Хекслет
    Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 4
@marklarius
print x.encode("utf-8")
Ответ написан
EndUser
@EndUser
перенастроить консоль налету через команду chcp?
Ответ написан
Комментировать
@MikhailEdoshin
Вам принципиально нужна консоль Windows? А то поставьте cygwin, там консоль в комплекте, с настройкой в том числе и кодировки.
Ответ написан
Комментировать
Mithgol
@Mithgol
К вышесказанному прибавлю, что очень многое зависит от того, были ли выставлены точечные шрифты в консоли:

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

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

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

Похожие вопросы