Seite 1 von 1

Sonderzeichen/Umlaute & Listen

Verfasst: Freitag 30. Dezember 2005, 02:43
von 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

Verfasst: Freitag 30. Dezember 2005, 09:25
von Clython
Suche nach Unicode mit der Suchfunktion...

Re: Sonderzeichen/Umlaute & Listen

Verfasst: Freitag 30. Dezember 2005, 09:55
von 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).

Verfasst: Freitag 30. Dezember 2005, 11:39
von jens