все Python 3codecsфункция
codecs.replace_errors()
обработчики ошибок
Обработчик ошибок 'replace': при кодировании ставит '?' вместо символа, при декодировании — знак U+FFFD «�» вместо испорченных байтов.
Синтаксис
codecs.replace_errors(exception)
Замена разная в двух направлениях, и это путает: '?' при encode неотличим от настоящего вопросительного знака в тексте. «�» в выводе почти всегда значит, что байты декодировали не той кодировкой. Число «�» не равно числу потерянных символов: одна испорченная последовательность UTF-8 может дать несколько.
Примеры
print('a€b'.encode('latin-1', 'replace')) # → b'a?b'
print(b'a\xffb'.decode('utf-8', 'replace')) # → a�b
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности