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

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
mcdwerner
User
Beiträge: 113
Registriert: Donnerstag 7. Juli 2011, 14:27

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?
Sirius3
User
Beiträge: 18335
Registriert: Sonntag 21. Oktober 2012, 17:20

Das Stichwort heißt "Normalform":

Code: Alles auswählen

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

@mcdwerner: Schau Dir mal die Normalisierungsfunktionen im `unicodedata`-Modul an.
mcdwerner
User
Beiträge: 113
Registriert: Donnerstag 7. Juli 2011, 14:27

vielen Dank ihr 2, funktioniert bestens :-)
Antworten