2015-04-06 239 views
0

我有几行代码:阅读CSV与unicodecsv:UnicodeDecodeError错误

zf = zipfile.ZipFile(self.temp_file, 'r') 
data = zf.open('myfile.csv', mode='r') 
result = [link for link in unicodecsv.DictReader(data)] 

而这里的异常代码:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xc9 in position 13: invalid continuation byte 

输入的字符串:

CAFÉ RESTAURANT 

那么,什么是我做错了,为什么unicodecsv无法处理utf-8?

+0

因为内容是*不* UTF-8。 –

回答

3

这是因为你的输入是而不是 UTF-8,但拉丁语-1(或类似)。在UTF-8中,É被编码为2个字节:'\xc3\x89'。该错误通知在输入中满足\xc9字节;这是在Latin-1或Win-1252代码页中编码的É

+0

是的,你说得对,它是拉丁语-1。 –