UnicodeDecodeError: 'utf-8' Codec kann Byte nicht dekodieren
Hier ist mein Code,
for line in open('u.item'):
#read each line
Wenn ich diesen Code ausführe, wird folgende Fehlermeldung angezeigt:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Ich habe versucht, dieses Problem zu lösen, indem ich einen zusätzlichen Parameter in open() einfügte. Der Code sieht wie folgt aus
for line in open('u.item', encoding='utf-8'):
#read each line
Aber wieder gibt es den gleichen Fehler. Was soll ich dann tun? Bitte helfen Sie mir.
178
3
Wie von Mark Ransom vorgeschlagen, habe ich die richtige Kodierung für dieses Problem gefunden. Die Kodierung war "ISO-8859-1", so dass das Ersetzen von
open("u.item", encoding="utf-8")
durchopen('u.item', encoding = "ISO-8859-1")
das Problem lösen wird.Ihre Datei enthält nicht wirklich utf-8 kodierte Daten, sondern eine andere Kodierung. Finden Sie heraus, welche Kodierung das ist, und verwenden Sie sie im
open
-Aufruf.In der Windows-1252-Kodierung wäre
0xe9
zum Beispiel das Zeichené
.Falls jemand danach sucht, hier ein Beispiel für die Konvertierung einer CSV-Datei in Python 3: