Erste Buchstabe bei UTF-8...

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich benötige den ersten Buchstaben eines Wortes... Das macht man normalerweise einfach mit first_letter = item[0] Wenn das Wort allerdings mit einem Sonderzeichen beginnt und das in UTF-8 encodiert ist, besteht dieser Buchstabe ja eigentlich aus zwei.
Deswegen hab ich folgendes gemacht:

Code: Alles auswählen

            first_letter = item[0].upper()
            try:
                if item.encode("String_Escape").startswith(r"\x"):
                    first_letter = item[:2].upper()
            except:
                pass
Jemand eine bessere Lösung?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Wenn es doch ein Unicode-String ist kannst du doch genau gleich item[0] machen, nur sind es dann intern halt ev. 2 bytes.

Bin aber nicht sicher, hab noch nicht viel mit Unicode gemacht.

Gruss
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Code: Alles auswählen

utf8 = '\xc3\x9cbler UTF-8-String'
item = utf8.decode("utf-8")
print item[0]
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich mach nun eine konvertierung zu unicode und dann wieder zurück: http://www.python-forum.de/viewtopic.php?p=34028#34028

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Warum wieder zurück? Unicodestring sind doch von der Funktionalität her identisch...
Antworten