Unicode und 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
rbv
User
Beiträge: 2
Registriert: Montag 29. März 2010, 10:01

Hallo Forum

Ich habe hier ein kleines Unicode-Problem:
eine utf8-Datei in der sich japanischer Text befindet

Code: Alles auswählen

dictionary = codecs.open( "liste", "r", "utf-8" ) 
for line in dictionary:
        line_array=line.split(" ",1)
        print line_array[0], line_array[1]
        liste.append([line_array[0], line_array[1]])
Das print gibt zb "日 ひ" aus.

"print liste" jedoch "[[u'\u65e5', u'\u3072\n']]"

"for j in liste: print j[0]" gibt dann wieder "日"

Könnt Ihr mir erklären warum die zeite Ausgabe so merkwürdig ist?

Mit verwirrten Grüßen
Roland
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Was Du da siehst ist wohl die Darstellung der __repr__-Funktion der Objekte innerhalb der Liste. Insofern wird da wohl die __str__-Funktion der list-Implementierung diese Aufrufen, anstatt der __str__-Funktionen der inneren Objekte. Vermutlich aus Sicherheitsgründen, damit beim Ausgeben der Objekte keine Exception auftritt.
rbv
User
Beiträge: 2
Registriert: Montag 29. März 2010, 10:01

Wenn das so gewollt ist, ist ja alles gut.

Hab Dank
Roland
Antworten