使用 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 编码。
我有这些代码行:
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 编码。