使用Python2.7,我从一个网站获取一些HTML作为字符串,并立即将其解码为unicode。因为我稍后需要知道解码错误发生的位置,所以我认为最好使用errors=“replace”来防止非ASCII字符的异常:

linkname = curlinkname.decode("utf-8", errors="replace")

在大多数情况下,这会将问题字符替换为占位符。然而,当我运行代码时,我仍然在一个特定字符(ū)上从这一行得到一个异常:
UnicodeEncodeError: 'charmap' codec can't encode character u'\u016b' in position 1: character maps to <undefined>

发生什么事?

最佳答案

你需要先安装lib

pip install chardet

那就用它吧
import chardet
code = chardet.detect(curlinkname)
linkname = curlinkname.decode(code['encoding'], errors="replace")

10-06 09:35