trovo la documentazione abbastanza chiaro, ma qui ci sono un paio di esempi di codice:
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 Ç
Entrambi 'D' (= decomporsi) forme convertire un singolo carattere combinato (come ä
) in due caratteri (a
+ due punti). Entrambe le forme 'C' (= componi) fanno il contrario.
I due moduli "K" vengono utilizzati per convertire i caratteri aggiunti a Unicode per motivi di compatibilità. Ad esempio, per supportare software che non possono disegnare cerchi attorno ai simboli, esiste un insieme di "numeri cerchiati", come ① (numero unicode 2460). Quando applichiamo la decomposizione canonica (NFD) ad esso, non fa niente:
print '%r' % normalize('NFD', u'\u2460') # u'\u2460'
Tuttavia, la decomposizione di compatibilità (NFKD) restituisce il carattere corrispondente "compatibile":
print '%r' % normalize('NFKD', u'\u2460') # 1
Vedi http://en.wikipedia.org/wiki/Unicode_equivalence per maggiori dettagli.