Seite 1 von 1

ü u\xcc\x88 und ü \xfc in utf-8 auf Gleichheit testen

Verfasst: Mittwoch 29. Januar 2014, 13:10
von mcdwerner
Hi,

ich hab hier 2 verschiedene Quellen für einen utf-8 String, es wird beides Mal "Müller" geliefert:
'Mu\xcc\x88ller' und 'M\xfcller'

Das sind wohl 2 grundsätzlich verschiedene Darstellung von Umlauten in utf-8, einmal "direkt" und einmal als "Grundbuchstabe plus Pünktchen"

Nun würde ich die beiden gern auf Gleichheit testen und die beiden Darstellungen sollen natürlich gleich sein, gibt es dafür was fertiges oder muss ich das "zu Fuß" machen und die Darstellungen rausparsen?

Re: ü u\xcc\x88 und ü \xfc in utf-8 auf Gleichheit testen

Verfasst: Mittwoch 29. Januar 2014, 13:38
von Sirius3
Das Stichwort heißt "Normalform":

Code: Alles auswählen

import unicodedata
mueller = unicodedata.normalize('NFC', 'Mu\xcc\x88ller'.decode('utf8'))

Re: ü u\xcc\x88 und ü \xfc in utf-8 auf Gleichheit testen

Verfasst: Mittwoch 29. Januar 2014, 13:38
von BlackJack
@mcdwerner: Schau Dir mal die Normalisierungsfunktionen im `unicodedata`-Modul an.

Re: ü u\xcc\x88 und ü \xfc in utf-8 auf Gleichheit testen

Verfasst: Mittwoch 29. Januar 2014, 13:49
von mcdwerner
vielen Dank ihr 2, funktioniert bestens :-)