APIドキュメントでは、 http://docs.python.org/2/library/unicodedata.html#unicodedata.normalize 。それは言う
Unicode文字列unistrの正規形formを返します。フォームの有効な値は、「NFC」、「NFKC」、「NFD」、および「NFKD」です。
ドキュメントはかなり曖昧ですが、誰かがvalid values
をいくつかの例で説明できますか?
ドキュメントはかなり明確だと思いますが、ここにいくつかのコード例があります。
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 Ç
両方の「D」(=分解)形式は、単一の結合文字(ä
など)を2文字(a
+ 2つのドット)に変換します。両方の「C」(=作成)形式は逆を行います。
2つの「K」形式は、互換性の目的でUnicodeに追加された文字を変換するために使用されます。たとえば、記号の周りに円を描くことができないソフトウェアをサポートするために、①(ユニコード番号2460)のような「円で囲まれた数字」のセットがあります。正規分解(NFD)を適用しても、何も実行されません。
print '%r' % normalize('NFD', u'\u2460') # u'\u2460'
ただし、互換性分解(NFKD)は、対応する「互換性のある」文字を返します。
print '%r' % normalize('NFKD', u'\u2460') # 1
詳細については、 http://en.wikipedia.org/wiki/Unicode_equivalent を参照してください。