Я видел несколько сообщений, связанных с этим, но ясного ответа не было. Предположим, я хочу напечатать строку s=u'\xe9\xe1'
в терминале, который поддерживает только ASCII (например, LC_ALL=C; python3
). Есть ли способ настроить следующее как поведение по умолчанию:Обработка кодировки по умолчанию Python по умолчанию
import sys
s = u'\xe9\xe1'
s = s.encode(sys.stdout.encoding, 'replace').decode(sys.stdout.encoding)
print(s)
Т.е., я хочу строку, чтобы напечатать что-то - даже мусор - а не поднимая исключение (UnicodeEncodeError). Я использую python3.5.
Я хотел бы избежать написания этого для всех моих строк, которые могут содержать UTF-8.
Это именно то, что я искал - очень ценю! (Я пошел с вариантом 2) – ws6079