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
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 30. März 2006, 09:53

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?

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

Donnerstag 30. März 2006, 10:09

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

Donnerstag 30. März 2006, 14:02

Code: Alles auswählen

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

Freitag 31. März 2006, 07:07

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

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Freitag 31. März 2006, 13:20

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