2016-10-03 67 views
1

我有一個不是utf-8編碼的csv文件。它似乎是不可能出現在Python 3,打開它,我已經試過各種.encode()Windows-1252ISO-8859-1latin-1 - 每次我得到打開非utf-8 csv文件Python 3

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 279: invalid start byte 

0xfc字節是德國ü

我承認,我的判斷力受到影響,因爲我現在正在與這個問題長期鬥爭。我錯過了什麼?我一直在使用Python中的unicode出現問題,但這個看起來特別固執。

這是我第一次嘗試與Python 3一起工作,據我所知沒有.decode()了,這可能已經解決了第二個問題。

編輯: 代碼打開文件:

import unicodecsv as csv 
csv.reader(open('myFile.csv', 'r'), delimiter = ';') 
+0

如何你的文件編碼,你的代碼是如何打開文件的? – Matthias

+0

@Matthias就是這個問題 - 我沒有創建文件,也沒有想法它是如何編碼的。 在問題中編輯我的代碼。 – Zlo

+0

在'open'中,指定'encoding =「latin-1」'參數。 – cdarke

回答

3

只需指定編碼時開放文件:

with open("xxx.csv", encoding="latin-1") as fd: 
    rd = csv.reader(fd) 
    ... 

或用自己的代碼:

csv.reader(open('myFile.csv', 'r', encoding='latin1'), delimiter = ';') 
+0

非常感謝!我越來越絕望。 – Zlo