输入文件:chars.csv:
4,,x,,2,,9.012,2,,,,
6,,y,,2,,12.01,±4,,,,
7,,z,,2,,14.01,_3,,,,
当我尝试解析此文件时,即使在指定utf-8编码后也会出现此错误。
>>> f=open('chars.csv',encoding='utf-8')
>>> f.read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.2/codecs.py", line 300, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 36: invalid start byte
如何更正此错误?
版本:Python 3.2.3
答案 0 :(得分:3)
您的输入文件显然不是utf-8编码的,因此您至少拥有以下选项:
f=open('chars.csv', encoding='utf-8', errors='ignore')
如果给定的文件大部分是utf-8而你不关心一些小的数据丢失。对于其他errors
参数值check manual 答案 1 :(得分:0)
这不是UTF-8编码。 ±的UTF-8编码是\ xC2 \ xB1,而Â是\ xC2 \ x83。正如RobertT所建议的那样,尝试使用Latin-1:
f=open('chars.csv',encoding='latin-1')