Heim >Backend-Entwicklung >Python-Tutorial >Wie vereinfacht die Python-Funktion „unicodedata.normalize()' Unicode-Darstellungen?

Wie vereinfacht die Python-Funktion „unicodedata.normalize()' Unicode-Darstellungen?

DDD
DDDOriginal
2024-11-22 16:12:15254Durchsuche

How Does Python's `unicodedata.normalize()` Function Simplify Unicode Representations?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn