все Python 3codecsфункция
codecs.backslashreplace_errors()
обработчики ошибок
Обработчик ошибок 'backslashreplace': заменяет проблемный символ или байт экранированной записью вида \xe9, \u20ac или \xff.
Синтаксис
codecs.backslashreplace_errors(exception)
Лучший выбор для логов и диагностики: ничего не теряется, а по коду можно восстановить исходник. С 3.5 работает и при декодировании — плохой байт становится '\xff'. Его использует sys.stderr по умолчанию, поэтому print в stderr не падает на любом символе. Обратно в исходный текст результат сам не превратится.
Примеры
print('café €'.encode('ascii', 'backslashreplace')) # → b'caf\\xe9 \\u20ac'
print(b'ok\xff'.decode('utf-8', 'backslashreplace')) # → ok\xff
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности