Seite 1 von 1

Unicode und Variablen

Verfasst: Dienstag 20. März 2007, 20:06
von sauerkraut
Wie kann ich einen String in Unicode umwandel?

Mit dem u vor dem String kenne ich: z.B. u"Hallo \xd6sterreich"
Aber wie kann ich das mit einer Variablen XYZ die einen String enthält umsetzen? Sowas wie u(XYZ) geht ja leider nicht.

Verfasst: Dienstag 20. März 2007, 20:11
von rayo
Hi

Das geht mit str_var.decode("aktuelles encoding")

Also wenn du ein UTF-8 String hast kannst du mit str_var.decode("utf-8") ein Unicode erzeugen.

Das gleiche gilt für die anderen Encodings.

Gruss

Verfasst: Dienstag 20. März 2007, 20:18
von sauerkraut
Das hab ich schon mal versucht bekomme da aber folgenden Fehler:

AttributeError: decode

Da war das Problem, dass die Variable die ich bekommen habe als float deklariert (was sich auch nicht umgehen lässt!) deswegen versuche ich die Variable als String zu deklarieren:

print "text2: ", unicode(str(text), "utf-8")

Bekomme dann aber die Fehlermeldung:

UnicodeError: ASCII encoding error: ordinal not in range(128)

Verfasst: Dienstag 20. März 2007, 21:31
von BlackJack
Du solltest Dich ganz dringend mit Unicode und Kodierungen auseinander setzen und dann erst einmal herausfinden, wobei die Ausnahme ausgelöst wird.

Zum Beispiel versuchst Du dort ein Unicode-Objekt mit ``print`` auszugeben. Dazu muss das aber wieder in Bytes umkodiert werden. Falls dem Interpetierer bekannt ist, welche Kodierung das Terminal verwendet, oder wo auch immer die Daten ausgegeben werden, dann kann das gut gehen, aber sonst wird versucht ASCII als Kodierung zu verwenden. Das klappt dann natürlich nicht, wenn die Unicode-Zeichenkette etwas ausserhalb von ASCII enthält.

Re: Unicode und Variablen

Verfasst: Dienstag 20. März 2007, 22:05
von gerold
sauerkraut hat geschrieben:Wie kann ich einen String in Unicode umwandel?
Hallo sauerkraut!

Das habe ich bereits versucht, einsteigerfreundlich zu erklären: http://www.python-forum.de/topic-5095.html

Lies dir das noch mal durch und spiele mit den Beispielen.

mfg
Gerold
:-)

Verfasst: Mittwoch 21. März 2007, 13:02
von birkenfeld
Und wie immer weise ich auf die fehlerkorrigierte Version im Wiki hin: [wiki]Von Umlauten, Unicode und Encodings[/wiki]

Verfasst: Mittwoch 21. März 2007, 20:15
von Leonidas
birkenfeld hat geschrieben:Und wie immer weise ich auf die fehlerkorrigierte Version im Wiki hin: [wiki]Von Umlauten, Unicode und Encodings[/wiki]
Ich denke man sollte etwas prominenter darauf hinweisen dass Unicode nicht UTF-8 ist und dasss man Unicode-Daten nicht direkt anzeigen kann. Das ist ein Punkt, der zum Beispiel in den Wikipedia-Seiten meiner Meinung nach nicht direkt klar ist, der aber hilfreich ist, Unicode zu verstehen.

Verfasst: Donnerstag 22. März 2007, 17:07
von birkenfeld
Wenn du die Wiki-Version verbessern magst...

Verfasst: Donnerstag 22. März 2007, 18:11
von querdenker
Mal dumm gefragt: Was für Variablen meinst du?

Wenn du die selber anlegst, solltest du (meiner Meinung nach) Umlaute vermeiden, bzw durch Diphthonge ersetzen, oder aber, soweit möglich, durch beschreibende englische Bezeichnungen ersetzen. Wird spätestens dann notwendig, wenn sich jemand aus dem Nichtdeutschen Sprachraum mit dem Quellcode auseinandersetzen will und/oder muss.



syl, querdenker