在https://docs.python.org/3/library/stdtypes.html#bytes.decode的文档中
它说errors='replace'
是一个有效的选项。...但是它用什么代替了无效值?
答案 0 :(得分:0)
按照文档Error Handlers进行操作,它将说明“替换”适用于文本编码。
值:
'replace'
含义:用合适的替换标记物进行替换; Python将使用官方的U+FFFD
替换字符 解码时使用内置编解码器,而编码时使用“?”含义:用合适的替代物替换
U+FFFD充当无法解码的字节的填充符。看起来像这样:
b'ab\xffcd'.decode('utf-8', 'replace')
# 'ab�cd'
没有“ replace”参数,您可能会得到一个UnicodeDecodeError
:
b'ab\xffcd'.decode('utf-8')
# UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 2: invalid start byte