Python3 更改了 unicode 行为以拒绝代理对,而 python2 没有。
这里有个问题
但它没有提供关于如何在 python2 中删除代理对或如何进行代理转义的解决方案。
Python3 示例:
>>> a = b'\xed\xa0\xbd\xe4\xbd\xa0\xe5\xa5\xbd'
>>> a.decode('utf-8', 'surrogateescape')
'\udced\udca0\udcbd你好'
>>> a.decode('utf-8', 'ignore')
'你好'
这里的 '\xed\xa0\xbd' 不是正确的 utf-8 字符。我想忽略它们或逃避它们。
是否可以在 python2 中做同样的事情?