python中的安全解码('?'符号而不是异常)

kil*_*net 3 python

我有代码:

encoding = guess_encoding()    
text = unicode(text, encoding)
Run Code Online (Sandbox Code Playgroud)

当文本中出现错误符号时会引发UnicodeDecode异常.我怎样才能默默地跳过用"?"替换错误符号的异常 ?

Sve*_*ach 12

尝试

text = unicode(text, encoding, "replace")
Run Code Online (Sandbox Code Playgroud)

文档:

'replace'导致官方Unicode替换字符U + FFFD用于替换无法解码的输入字符.

如果你想使用"?"而不是官方的Unicode替换字符,你可以这样做

text = text.replace(u"\uFFFD", "?")
Run Code Online (Sandbox Code Playgroud)

转换为unicode后.

  • 在Python 2.x中的字符串'u"\ ufffd"之前添加`u`,否则`replace()`函数不起作用.顺便说一下,'u'\ ufffd'`已经是一个问号(钻石里面):` ` (3认同)