Sonderzeichen/Umlaute & Listen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nina

hi,
offensichtlich scheint python nicht mit umlauten und sonderzeichen umgehen zu können:
lst=[]
lst.append("?äa")
print lst

=>['?\xe4a']

nun frage ich einfach mal, wie man am einfachsten diesem problem aus dem weg geht. die values der liste stammen in meiner anwendung nicht von mir sondern werden aus einer wörterliste importiert. kann man bei python irgendwas importieren, damit auch sonderzeichen bei listen und dictionaries kein problem mehr darstellen? oder gibt es eine geschickte möglichkeit, \xe4a wieder so zu konvertieren, dass ?äa herauskommt?
danke für Eure hilfe
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

Suche nach Unicode mit der Suchfunktion...
BlackJack

nina hat geschrieben:hi,
offensichtlich scheint python nicht mit umlauten und sonderzeichen umgehen zu können:
lst=[]
lst.append("?äa")
print lst

=>['?\xe4a']
Es gibt bei Objekten zwei verschiedene Arten sie als Zeichenkette darzustellen. Einmal mit `str()` und zum anderen mit `repr()`. Bei Listen und Dictionaries wird `repr()` verwendet. Dabei werden alle Zeichen ausserhalb des ASCII Zeichensatzes als '\x??` dargestellt, wobei die beiden Fragezeichen den Wert des Zeichens in hexadezimaler Schreibweise darstellen. Der Wert '\xea' ist in der Latin-1/ISO-8859-1 Kodierung ein 'ä'. Hat also alles seine Richtigkeit.

Das ist deswegen "gut" weil man so genau sieht was die Zeichenkette enthält, weil ASCII Zeichen von allen gebräuchlichen Kodierungen unverändert dargestellt werden. (Gilt zumindest die Kodierungen in der "westlichen" Welt).
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten