Ich steh malwieder vor einem Problem und komm einfach nicht drauf!
Eigentlich dachte ich, ich hätt das Thema mit den Encodings mittlerweile überwunden aber es holt mich doch immer wieder ein!
Zu meinem Problem:
Ich verschlüssele Strings mit einer Methode ähnlich der von Hannes unter http://www.python-forum.de/topic-5224.html
Funktioniert soweit auch ganz gut....
Nun würde ich gerne den String in eine Datei in der ISO 8859-15 Zeichencodierung schreiben und benutze hierzu:
Code: Alles auswählen
codecs.open('Zieldatei.dat','wb', 'iso-8859-15').write(cr.crypt(quelle))
Manchmal gehts gut, manchmal bekomm ich die Exception:
Traceback (most recent call last):
File "<MeinVerz>\crypt.py", line 322, in ?
main()
File ""<MeinVerz>\crypt.py", line 311, in main
ziel2 = codecs.open(sys.argv[2]+'2','wb', 'iso-8859-15').write(cr.crypt(quelle))
File "X:\PYTHON22\lib\codecs.py", line 338, in write
return self.writer.write(data)
File "X:\PYTHON22\lib\codecs.py", line 137, in write
data, consumed = self.encode(object, self.errors)
File "X:\PYTHON22\lib\encodings\iso8859_15.py", line 18, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeError: charmap encoding error: character maps to <undefined>
Nach ein einiger Zeit bin ich hierauf gekommen:
Bekanntlich unterscheidet sich ISO-8859-15 ja nur geringfügig von ISO-8859-1 (s.a. http://de.wikipedia.org/wiki/ISO_8859-15 - die große Tabelle) und ich habe festgestellt, dass die Exception nur dann auftritt, wenn ich durch die "Verschlüsselung" genau eines dieser sich von ISO-8859-1 unterscheidenden Zeichen erwisch.
Als ob versucht wird die Datei als ISO-8859-1 statt ISO-8859-15 zu schreiben
Könnt ihr mir da vielleicht helfen?
Danke schonmal im Vorraus!
Gruß,
Simon