【问题标题】:What does bytes.decode() with errors='replace' do?bytes.decode() with errors='replace' 有什么作用?
【发布时间】:2019-06-26 15:24:10
【问题描述】:

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

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

【问题讨论】:

  • 你读过“见Error Handlers”部分吗?
  • "可能的值是 'ignore'、'replace' 和通过 codecs.register_error() 注册的任何其他名称,请参阅错误处理程序部分"

标签: python python-3.x byte decode


【解决方案1】:

按照Error Handlers的文档,它将解释“替换”适用于文本编码。

值:'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

【讨论】:

    猜你喜欢
    • 2017-11-21
    • 2019-02-19
    • 2021-08-27
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 2019-12-08
    相关资源
    最近更新 更多