Следуйте документации к Обработчикам ошибок , и это объяснит, что «замена» применима к кодировкам текста.
Значение: 'replace'
Значение: Заменить наподходящий маркер замены;Python будет использовать официальный U+FFFD
REPLACEMENT CHARACTER для встроенных кодеков при декодировании, и '?'при кодированииСмысл: Заменить на подходящую замену
U + FFFD действует как заполнитель для байтов, которые не могут быть декодированы.Это выглядит так:
b'ab\xffcd'.decode('utf-8', 'replace')
# 'ab�cd'
Без аргумента «заменить» вы можете получить UnicodeDecodeError
:
b'ab\xffcd'.decode('utf-8')
# UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 2: invalid start byte