Настройка кодировки вывода по умолчанию в Python 2 является известной идиомой:
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
Это обертывает объект sys.stdout
в записи кодека, который кодирует вывод в UTF-8.
Однако этот метод не работает в Python 3, потому что sys.stdout.write()
ожидает str
, но результатом кодирования является bytes
, и возникает ошибка, когда codecs
пытается записать закодированные байты в исходное sys.stdout
.
Каков правильный способ сделать это в Python 3?