Seite 1 von 1

Erste Buchstabe bei UTF-8...

Verfasst: Donnerstag 30. März 2006, 09:53
von jens
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?

Verfasst: Donnerstag 30. März 2006, 10:09
von rayo
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

Verfasst: Donnerstag 30. März 2006, 14:02
von Joghurt

Code: Alles auswählen

utf8 = '\xc3\x9cbler UTF-8-String'
item = utf8.decode("utf-8")
print item[0]

Verfasst: Freitag 31. März 2006, 07:07
von jens
Ich mach nun eine konvertierung zu unicode und dann wieder zurück: http://www.python-forum.de/viewtopic.php?p=34028#34028

Verfasst: Freitag 31. März 2006, 13:20
von Joghurt
Warum wieder zurück? Unicodestring sind doch von der Funktionalität her identisch...