Джеймс Сулак спросил,
Есть ли способ заставить Python автоматически печатать a? вместо неудачи в этой ситуации?
Другие решения рекомендуют попытаться изменить среду Windows или заменить функцию Python print()
. Ответ ниже приближается к выполнению запроса Сулака.
В Windows 7 Python 3.5 может быть настроен для печати Unicode без выдачи UnicodeEncodeError
следующим образом:
Вместо:
print(text)
замена:
print(str(text).encode('utf-8'))
Вместо генерирования исключения Python теперь отображает непечатаемые символы Юникода в виде \ xNN шестнадцатеричных кодов, например ::
Halmalo n \ xe2 \ x80 \ x99 \ xc3 \ xa9tait plus qu \ xe2 \ x80 \ x99un точка нуар
вместо
Halmalo n’était plus qu’un point noir
Конечно, последний предпочтительнее при прочих равных условиях , но в остальном он абсолютно точен для диагностических сообщений. Поскольку он отображает Unicode как буквенные байтовые значения, первый также может помочь в диагностике проблем кодирования / декодирования.
Примечание: Вышеуказанный вызов str()
необходим, потому что в противном случае encode()
заставляет Python отклонять символ Unicode в виде набора чисел.