Unicode und Variablen

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
sauerkraut
User
Beiträge: 13
Registriert: Montag 26. Februar 2007, 00:01

Dienstag 20. März 2007, 20:06

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.
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Dienstag 20. März 2007, 20:11

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
sauerkraut
User
Beiträge: 13
Registriert: Montag 26. Februar 2007, 00:01

Dienstag 20. März 2007, 20:18

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)
BlackJack

Dienstag 20. März 2007, 21:31

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.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Dienstag 20. März 2007, 22:05

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Mittwoch 21. März 2007, 13:02

Und wie immer weise ich auf die fehlerkorrigierte Version im Wiki hin: [wiki]Von Umlauten, Unicode und Encodings[/wiki]
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 21. März 2007, 20:15

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Donnerstag 22. März 2007, 17:07

Wenn du die Wiki-Version verbessern magst...
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Donnerstag 22. März 2007, 18:11

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
Antworten