2016-09-09 5 views
1

Ich versuche, eine Datei zu lesen, die dieses Zeichen darin "ë" enthält. Das Problem ist, dass ich nicht herausfinden kann, wie man es liest, egal was ich mit der Kodierung versuche. Wenn ich die Datei in TextEdit manuell anschaue, wird sie als unbekannte 8-Bit-Datei aufgelistet. Wenn ich versuche, es in utf-8, utf-16 oder irgendwas anderes zu ändern, funktioniert es entweder nicht oder vermasselt die gesamte Datei. Ich habe versucht, die Datei nur in Standard-Python-Befehlen sowie mit Codecs zu lesen und kann nichts finden, was sie richtig liest. Ich werde ein Codebeispiel von dem Lesen unten einschließen. Hat jemand eine Ahnung, was ich falsch mache? Dies ist Python 2.17.10 übrigens.Python-Codierung Problem beim Lesen einer Datei

readFile = codecs.open("FileName",encoding='utf-8') 

Die Zeile, die ich versuche zu lesen, ist diese mit nichts anderem darin.

Aeëtes 

Hier sind einige der Fehler, die ich erhalten:

UnicodeDecodeError: 'utf8' codec can't decode byte 0x91 in position 0: invalid start byte

UTF-16 stream does not start with BOM" UnicodeError: UTF-16 stream does not start with BOM -- I know this one is that it is not a utf-16 file.

UnicodeDecodeError: 'ascii' codec can't decode byte 0x91 in position 0: ordinal not in range(128)

Wenn ich das Wort als Ae?tes kommt in keinen Codec verwenden, die dann später im Programm abstürzt. Nur um klar zu sein, keine der vorgeschlagenen Fragen oder andere irgendwo im Netz haben auf eine Antwort hingewiesen. Ein anderes Detail, das helfen könnte, ist, dass ich OS X, nicht Windows verwende.

+0

Können Sie die Datei einfügen, oder zumindest einen Teil davon? Was ist der Fehler, den Sie bekommen? – ffledgling

+1

Bitte geben Sie einige Fehler oder unerwartete Ergebnisse an. Es gibt auch eine Codierung "utf-8-sig", die helfen könnte. –

+0

Der Fehler ändert sich je nachdem, welche Codierung ich verwende. Hier ist einer von ihnen. UnicodeDecodeError: 'utf8' Codec kann das Byte 0x91 in Position 0 nicht dekodieren: ungültiges Startbyte – Jimmy

Antwort

1

Kredit für diese Antwort geht an RadLexus für die Ermittlung der richtigen Codierung und auch an Mad Physicist, der mich in die richtige Spur zeigte, auch wenn ich nicht alle möglichen Kodierungen berücksichtigt.

Das Problem ist offenbar ein Mac wird die TXT-Datei in mac_roman konvertieren. Wenn Sie diese Codierung verwenden, wird es perfekt funktionieren.

Dies ist die Codezeile, die ich verwendet habe, um es zu konvertieren.

readFile = codecs.open("FileName",encoding='mac_roman') 
Verwandte Themen