Unicode in Python normalisieren: Unicode-Darstellungen vereinfachen
In Python stellt das Unicodedata-Modul die Funktion .normalize() zur Vereinfachung von Unicode-String-Darstellungen bereit . Diese Funktion wandelt zerlegte Unicode-Entitäten in ihre einfachsten zusammengesetzten Formen um.
Betrachten Sie das folgende Beispiel:
import unicodedata char = "á" print(len(char)) # Output: 1 [print(unicodedata.name(c)) for c in char] # Output: ['LATIN SMALL LETTER A WITH ACUTE'] char = "á" print(len(char)) # Output: 2 [print(unicodedata.name(c)) for c in char] # Output: ['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT']
Das Zeichen „á“ besteht aus zwei Codepunkten: U 0061 (lateinischer Kleinbuchstabe). A) und U 0301 (kombinierender akuter Akzent). Zerlegt erscheinen diese Zeichen als „á“.
Um diese Zeichenfolge zu normalisieren, können wir .normalize('NFC') verwenden, das die zusammengesetzte Form zurückgibt:
print(ascii(unicodedata.normalize('NFC', '\u0061\u0301'))) # Output: '\xe1'
Umgekehrt . normalize('NFD') gibt die zerlegte Form zurück:
print(ascii(unicodedata.normalize('NFD', '\u00E1'))) # Output: 'a\u0301'
Zusätzliche Normalisierungsformen sind vorhanden, um Kompatibilitätscodepunkte zu verarbeiten. NFKC und NFKD ersetzen Kompatibilitätszeichen durch ihre kanonischen Formen. Beispielsweise wird U 2160 (RÖMISCHE ZIFFER EINS) mithilfe von NFKC zu „I“ normalisiert:
print(unicodedata.normalize('NFKC', '\u2167')) # Output: 'VIII'
Es ist wichtig zu beachten, dass die Normalisierung nicht immer umkehrbar ist, da einige Zeichen möglicherweise keine eindeutigen zerlegten Formen haben.
Das obige ist der detaillierte Inhalt vonWie vereinfacht die Python-Funktion „unicodedata.normalize()' Unicode-Darstellungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!