Unicode normalisieren
Unicode-Zeichenfolgen enthalten häufig zusammengesetzte Zeichen, die als Folge von zwei oder mehr Codepunkten dargestellt werden. Diese Verbundstoffe können manchmal in einfachere Einzelcodepunkt-Entitäten normalisiert werden.
Problem
Das Unicodedata-Modul bietet eine praktische Möglichkeit, auf Unicode-Zeicheninformationen zuzugreifen. Das manuelle Durchlaufen von Zeichen und das Ersetzen von zusammengesetzten Zeichen durch ihre nicht zusammengesetzten Äquivalente kann jedoch ineffizient und fehleranfällig sein.
Lösung
Um eine Unicode-Zeichenfolge zu normalisieren und zusammengesetzte Zeichen zu konvertieren Verwenden Sie für die einfachste Form die Funktion unicodedata.normalize() mit der Option „NFC“ (Normal Form Composed). Diese Form ersetzt zusammengesetzte Zeichen durch ihre vorkomponierten Gegenstücke.
Zum Beispiel:
>>> import unicodedata >>> char = "á" >>> unicodedata.normalize('NFC', char) == "á" True
Umgekehrt konvertiert die Option „NFD“ (Normal Form Decomposed) vorkomponierte Zeichen in ihre zerlegte Form:
>>> char = "á" >>> unicodedata.normalize('NFD', char) == "a\u0301" True
Zusätzliche Normalisierungsformen
Zusätzlich zu NFC und NFD gibt es zwei zusätzliche Normalisierungsformen:
Beispiel:
>>> char = "Ⅷ" >>> unicodedata.normalize('NFKC', char) == "VIII" True
Hinweis: Die Normalisierung ist nicht immer umkehrbar; Das Zerlegen eines Zeichens in NFD und das anschließende erneute Zusammensetzen in NFC führt möglicherweise nicht immer zur ursprünglichen Zeichenfolge.
Das obige ist der detaillierte Inhalt vonWie kann ich Unicode-Zeichenfolgen in Python normalisieren, um zusammengesetzte Zeichen zu vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!