Seite 1 von 1

Re: Umlaute "wiederherstellen"

Verfasst: Dienstag 12. Juni 2012, 18:09
von /me
Und genau deshalb gibt man das Encoding beim Schreiben explizit an.

Re: Umlaute "wiederherstellen"

Verfasst: Dienstag 12. Juni 2012, 18:50
von heiliga horsd
cofi hat geschrieben:Manchmal hilft es ja einfach die Dokumentation zu lesen:
http://docs.python.org/py3k/library/functions.html#open hat geschrieben:encoding is the name of the encoding used to decode or encode the file. This should only be used in text mode. The default encoding is platform dependent (whatever locale.getpreferredencoding() returns), but any encoding supported by Python can be used. See the codecs module for the list of supported encodings.
Stimmt, RTFM hätte ich mir denken können - leider fehlt mir bei dem Kodierungszeug noch ein wenig der Überblick in der Doku, aber ich denke das kommt mit der Zeit.

@/me: Danke, wusste ich nicht. Werd ich mir auf jeden Fall merken!

Re: Umlaute "wiederherstellen"

Verfasst: Dienstag 12. Juni 2012, 19:14
von /me
heiliga horsd hat geschrieben:Stimmt, RTFM hätte ich mir denken können - leider fehlt mir bei dem Kodierungszeug noch ein wenig der Überblick in der Doku, aber ich denke das kommt mit der Zeit.
Eins muss dir auf jeden Fall klar sein. Strings im Speicher sind Unicode-Strings. Unicode ist ein Konzept und nicht die Art und Weise wie ein Zeichen im Speicher aufgebaut ist. Aus diesem Grund kannst du auch keine Daten als Unicode speichern. Du kannst aber ein Encoding wie UTF-8 verwenden um Unicode-Strings zu speichern. In der Datei hast du dann kein Unicode, sondern einen UTF-8-codierten String. Beim Wiedereinlesen bekommst du im Speicher wieder einen Unicode-String. Dazu musst du allerdings beim Einlesen (bzw. beim Öffnen der Datei) angeben, welches Encoding dafür verwendet werden soll. Hast du Daten als UTF-8 gespeichert, dann solltest du sie auch mit UTF-8-Codierung wieder einlesen. Andere Formate wie EBCDIC würden einfach Datenmüll ergeben - wenn es denn überhaupt funktionierte.

Bitte merken
Von Unicode nach woanders hin: encode()
Von woanders nach Unicode: decode()

Re: Umlaute "wiederherstellen"

Verfasst: Dienstag 12. Juni 2012, 19:30
von heiliga horsd
Super Erklärung, Danke!

Ich werd mich mal wenn ich demnächst Zeit finde wohl noch ein bisschen damit befassen - läuft einem ja immer wieder über den Weg...

Problem gelöst,
Gruß Heiliga Horsd