具有errors ='replace'的bytes.decode()有什么作用?

时间:2019-06-26 15:24:10

标签: python python-3.x byte decode

https://docs.python.org/3/library/stdtypes.html#bytes.decode的文档中

它说errors='replace'是一个有效的选项。...但是它用什么代替了无效值?

1 个答案:

答案 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