Seite 1 von 1

UnicodeEncodeError

Verfasst: Sonntag 27. November 2011, 01:37
von ruderfrosch
Hallo Leute,

vielleicht könnt ihr mir ja mal helfen.
Ich hab hier von der Uni ein paar Python-Dateien bekommen, die lesen einen Text ein, parsen ihn und geben dann wieder was aus (das so im Groben).
Jetzt hab ich folgendes Problem. Ich habe hier zwei Dateien, die sollen eingelesen werden. Wenn diese Dateien nicht in der UTF-8-Codierung sind, kommt folgende Meldung:
File [....py], line XYZ, in function with open(self.probFile, encoding='utf-8') as file: IOError: [Errno 2] No such file or directory:
Speichere ich die beiden Dateien aber in UTF-8-Codierung (mit dem Notepad++), kommt bei mir folgende Fehlermeldung
File "C:\Python32\lib\encodings\cp850.py", line 20, in encode
return codecs.charmap_encode(input, self.errors, encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 0: character maps tp <undefined>
So wie es ausschaut, liegts wohl eher an den Dateien als an den Python-Geschreibsel der Uni. Was kann ich machen, damit diese Probleme weggehen?
Ideen ?

Re: UnicodeEncodeError

Verfasst: Sonntag 27. November 2011, 01:42
von Hyperion
Der IOError kann eigentlich nicht sein - zumindest nicht, wegen einer falschen Kodierung! Oder sind im Dateinamen evtl. Nicht ASCII-Zeichen? Wobei es dann auch danach nicht gehen sollte - der Dateiname hat ja nichts mit dem Inhalt zu tun.

Du solltest keinen Bezeichner `file` nennen, da das ein Built-In ist, welches Du damit überschreibst.

Hast Du evtl. eine BOM in der Datei drin? Man kann beim notepad++ iirc auswählen ob mit oder ohne gespeichert werden soll. Du musst auch jeden Fall "ohne" auswählen.