我在阅读文本文件时不断收到此错误。是否可以处理/忽略它并继续?
UnicodeEncodeError:“charmap”编解码器无法解码位置 7827 中的字节 0x81:字符映射到未定义。
我在阅读文本文件时不断收到此错误。是否可以处理/忽略它并继续?
UnicodeEncodeError:“charmap”编解码器无法解码位置 7827 中的字节 0x81:字符映射到未定义。
在 Python 3 中,在创建文件对象时传递一个适当的errors=
值(例如errors=ignore
or errors=replace
)(假设它是io.TextIOWrapper
-- 如果不是,请考虑将其包装在一个中!);另外,考虑传递一个更有可能的编码比charmap
(当你不确定时,utf-8
总是一个很好的起点)。
例如:
f = open('misc-notes.txt', encoding='utf-8', errors='ignore')
在 Python 2 中,该read()
操作只返回字节;那么,诀窍是解码它们以将它们变成一个字符串(如果你这样做,实际上,需要字符而不是字节)。如果您对它们的真实编码没有更好的猜测:
your_string.decode('utf-8', 'replace')
...替换未处理的字符,或
your_string.decode('utf-8', 'ignore')
简单地忽略它们。
也就是说,最好找到并使用它们的真实编码(而不是猜测utf-8
)。
您应该使用编解码器打开文件,以确保文件被解释为 UTF8。
导入编解码器 fd = codecs.open(文件名,'r',encoding='utf-8') 数据 = fd.read()
是的..你可以把它包在一个
try:
....
except UnicodeEncodeError:
pass