2015-04-06 238 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。 –