使用 unicodecsv 读取 csv:UnicodeDecodeError

Reading csv with 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?

这是因为您的输入不是UTF-8,而是Latin-1(或类似的)。在 UTF-8 中,É 被编码为 2 个字节:'\xc3\x89'。该错误通知输入中遇到了 \xc9 字节;这是 Latin-1 或 Win-1252 代码页中的 És 编码。