Python解码错误=Replace

Python解码错误=Replace,python,python-2.7,unicode,utf-8,python-unicode,Python,Python 2.7,Unicode,Utf 8,Python Unicode,使用Python2.7,我从一个网站获取一些HTML作为字符串,并立即将其解码为unicode。因为我以后需要知道解码错误发生在哪里,所以我认为最好使用errors=“replace”来防止非ASCII字符出现异常: linkname = curlinkname.decode("utf-8", errors="replace") 在大多数情况下,这将用占位符替换问题字符。但是,当我运行代码时,我仍然会从这一行的一个特定字符(ū)上得到一个异常: UnicodeEncodeError:“char

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

linkname = curlinkname.decode("utf-8", errors="replace")
在大多数情况下,这将用占位符替换问题字符。但是,当我运行代码时,我仍然会从这一行的一个特定字符(ū)上得到一个异常:

UnicodeEncodeError:“charmap”编解码器无法对位置1中的字符u'\u016b'进行编码:字符映射到

发生了什么事?

您需要先安装lib

pip install chardet
然后使用它

import chardet
code = chardet.detect(curlinkname)
linkname = curlinkname.decode(code['encoding'], errors="replace")

可能编码不是utf-8,请先检查它。您可以使用此库进行编码检测。您可以共享完整的回溯吗?您是从文本文件读取的吗?
import chardet
code = chardet.detect(curlinkname)
linkname = curlinkname.decode(code['encoding'], errors="replace")