Поддержка консоли Python Unicode под Windows
Я пытаюсь создать среду, которая позволяет печатать символы Unicode как в Python 2.7 и 3.4, под Windows.
ИспользуяCmder / ConEmu в качестве терминала UTF-8 полностью поддерживается из коробки.
Однако поддержка Python не так проста.
Python 3.3+Если я установлюchcp 65001
, Python 3.3+ обнаруживает его и работает нормально.
Если я установлюchcp 65001
это просто не работает вообще. Python выдает строку с ошибкой, а IPython вообще не работает.
Видимо, указавset PYTHONIOENCODING=utf-8
и Python, и IPython работают и позволяют печататьнемного символы Юникода.
Например я могу сделать:
print u'\xc1'
но я не могу сделать
print u'\xc1\xc1'
который производит:IOError: [Errno 0] Error
Тем не менее, это лучше, чем ничего, по крайней мере, большинство программ на Python 2.7 будут работать без изменений.
Мой вопрос заключается в том, что если я добавлю
@chcp 65001 > nul
@set PYTHONIOENCODING=utf-8
до концаcmder/vendor/init.bat
это будет иметь какие-либо побочные эффекты на Python 3.3+?
Кроме того, есть ли способ позволить неизмененные сценарии Pythonprint u'\xc1\xc1'
под виндой?