Хочется
а) печатать юникодные символы из Питона в консоль и
б) читать их сразу глазами, без декодера.
Работаю через chcp + PYTHONIOENCODING. И пока что могу успешно распечатать или кириллицу (1251), или балтику (1257), но не вперемешку — тогда выскакивает UnicodeEncodeError. Вобщем-то даже понятно почему не работают все варианты кроме последнего, но вот почему последний не работает, с utf-8, непонятно. Как бы его заработать или по другому получить желаемый результат?
Работаю в FAR/cmd, поэтому хочется чтобы именно под ними всё завелось. Менять сорцы тоже не хочется (но если это вариант вдруг — единственный, пожалуйста, расскажите об этом).
Python 2.7.3, Windows 7
Запускаемый скрипт:
# -*- coding: utf-8 -*-
try:
print u'Иосиф Кобзон'
except UnicodeEncodeError:
print 'cannot print cyrillic'
try:
print u'Eglutės'
except UnicodeEncodeError:
print 'cannot print baltic'
Лог сессии cmd.exe:
$ chcp 1251 1>nul
$ SET PYTHONIOENCODING=1251
$ python enc.py
Иосиф Кобзон
cannot print baltic
$ chcp 1257 1>nul
$ D:\temp\python-output-encoding>SET PYTHONIOENCODING=windows-1257
$ python enc.py
cannot print cyrillic
Eglutės
$ chcp 65001 1>nul
$ SET PYTHONIOENCODING=utf-8
$ python enc.py
��осиф КобзонTraceback (most recent call last):
File "enc.py", line 4, in <module>
print u'Иосиф Кобзон'
IOError: [Errno 2] No such file or directory