2013-02-04 10 views

risposta

23

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.

Problemi correlati