Hi, ich habe gerade erst begonnen mir das Programmieren beizubringen und bin daher noch ein blutiger Anfänger.
Ich habe folgendes Problem:
Ich habe als Beispiel folgendes kleines Programm geschrieben:
langer_String = '''Alle meine Entchen
schwimmen auf dem See.
Köpfchen in das Wasser.
Schwänzchen in die Höh.'''
wenn ich das Programm nun starte erkennt es alle Umlaute logischerweise nicht, daher habe ich den code # -*- coding: iso-8859-1 -*-
ganz an den Anfang eingefügt.
# -*- coding: iso-8859-1 -*-
langer_String = '''Alle meine Entchen
schwimmen auf dem See.
Köpfchen in das Wasser.
Schwänzchen in die Höh.'''
Aber als ich es startete fuktioniertren die äs,ös und üs immer noch nicht ('''...xf6pfchen in das Wasser, \nSchw\xe4nzchen in die H\xf6h.''').
Könnt ihr mir sagen wo das Problem liegt?
Das wäre sehr nett.
# -*- coding: iso-8859-1 -*-
@89PM: Was heisst „funktionieren nicht”? Du machst mit `langer_String` ja nichts weiter. Heisst das es gibt eine Fehlermeldung vom Compiler? Das kann eigentlich nicht mehr sein.
Falls Du doch etwas mit der Zeichenkette machst, dann ist die Frage welche Python-Version, passt die Kodierungsangabe zur tatsächlichen Kodierung der Textdatei, und was machst Du denn mit der Zeichenkette?
Falls Du doch etwas mit der Zeichenkette machst, dann ist die Frage welche Python-Version, passt die Kodierungsangabe zur tatsächlichen Kodierung der Textdatei, und was machst Du denn mit der Zeichenkette?
Du musst darauf achten, die Datei mit der gleichen Kodierung zu speichern, wie Du Python mittels der coding-Zeile mitteilst. Ein guter Editor erlaubt Dir das. Und dann solltest Du am besten 'utf-8' wählen.89PM hat geschrieben:Aber als ich es startete fuktioniertren die äs,ös und üs immer noch nicht.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Man muss darüber hinaus noch aufpassen, inwiefern das anzeigende Element (Shell, Testdatei, usw) diese Codierung auch darstellen / interpretieren kann Das könnte durchaus das Problem beim OP sein! Ich denke nicht, dass die Windows cmd utf-8 versteht, oder?kbr hat geschrieben:Du musst darauf achten, die Datei mit der gleichen Kodierung zu speichern, wie Du Python mittels der coding-Zeile mitteilst. Ein guter Editor erlaubt Dir das. Und dann solltest Du am besten 'utf-8' wählen.
@89PM: Schau Dir mal die Links in meiner Signatur an - wenn Du Dir die durchgelesen hast, wirst Du anfangen zu verstehen, was es mit Encodings so auf sich hat.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Laut SO schon, aber das ist schon ein gewisser Mehraufwand, ja.Hyperion hat geschrieben:Ich denke nicht, dass die Windows cmd utf-8 versteht, oder?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Also zumindest Umlaute gehen ohne Probleme:Hyperion hat geschrieben:Ich denke nicht, dass die Windows cmd utf-8 versteht, oder?
Code: Alles auswählen
print("Hällo")
Code: Alles auswählen
E:\>python test.py
Hällo!
Code: Alles auswählen
print("日本語")
Code: Alles auswählen
E:\>python test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
\ufeffprint("\u65e5\u672c\u8a9e")
File "C:\Programmieren\Python33\lib\encodings\cp850.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-2: character maps to <undefined>
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das hat ja alles nichts mit UTF-8 zu tun, das zeigt nur dass Python offenbar korrekt in CP-1215 konvertiert, welches offenbar von deiner Shell erwartet wird.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
{"Konrinthenkackermodus": "cp850"}
(Ich wollte das mal mit JSON auszeichnen, statt (Pseudo-)XML )
(Ich wollte das mal mit JSON auszeichnen, statt (Pseudo-)XML )