У удалённого клиента работает веб-сервер на Flask, и при попытке распечатать юникод в stdout случается такая ошибка - падает на символе 'Ł' и ему подобным:
File "C:\project\utils\mycode.py", line 260, in myfunk
print("- [%s]" % text)
File "C:\Python\Python36-32\lib\encodings\cp1251.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xe4' in position 32:
character maps to <undefined>
Всё бы ничего, но воспроизвести ошибку у себя на аналогичной конфигурации мне не удаётся.
Прошу помощи в победе над проблемой.
Сервер запускается через такой batch, отдельным окном "cmd.exe":
chcp 65001
set FLASK_DEBUG=1
set FLASK_APP=backend.py
venv\scripts\flask.exe run --port 5000
При этом, что странно, простейшая проверка у клиента проходит успешно:
from pprint import pprint
import sys
print(sys.version)
pprint('\u0141') # char 'Ł'
Вывод:
3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)]
'Ł'
Возможно это связано с тем что flask-сервер запускается своим экзешником.
Windows 7, Python 3.6