2013-02-04 12 views

Antwort

23

Ich finde die Dokumentation ziemlich klar, aber hier sind einige Code-Beispiele:

from unicodedata import normalize 

print '%r' % normalize('NFD', u'\u00C7') # decompose: convert Ç to "C + ̧" 
print '%r' % normalize('NFC', u'C\u0327') # compose: convert "C + ̧" to Ç 

Beide ‚D‘ (= zersetzen) Formen wandeln einen einzigen kombinierten Charakter (wie ä) in zwei Zeichen (a + zwei Punkte). Beide 'C' (= komponieren) Formen machen das Gegenteil.

Die beiden "K" -Formulare werden verwendet, um aus Kompatibilitätsgründen in Unicode hinzugefügte Zeichen zu konvertieren. Um beispielsweise Software zu unterstützen, die keine Kreise um Symbole zeichnen kann, gibt es eine Reihe von "eingekreisten Zahlen" wie ① (Unicode-Nummer 2460). Wenn wir die kanonische Zerlegung (NFD), um es anzuwenden, tut es nichts:

print '%r' % normalize('NFD', u'\u2460')  # u'\u2460' 

Allerdings wird die Kompatibilität Zersetzung (NFKD), um die entsprechenden "kompatibel" Zeichen zurück:

print '%r' % normalize('NFKD', u'\u2460') # 1 

Weitere Details finden Sie unter http://en.wikipedia.org/wiki/Unicode_equivalence.