所以在API文檔中,http://docs.python.org/2/library/unicodedata.html#unicodedata.normalize。它說可以解釋一下unicodedata.normalize(form,unistr)如何與示例一起使用?
返回正常形態形式爲Unicode字符串UNISTR。表單有效值是「NFC」,「NFKC」,「NFD」和「NFKD'.`
的文檔比較模糊,有人可以解釋valid values
一些例子嗎?
所以在API文檔中,http://docs.python.org/2/library/unicodedata.html#unicodedata.normalize。它說可以解釋一下unicodedata.normalize(form,unistr)如何與示例一起使用?
返回正常形態形式爲Unicode字符串UNISTR。表單有效值是「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」(=分解)形式轉換爲單個組合字符(如ä
)爲兩個字符(a
+兩個點)。 'C'(= compose)形式都是相反的。
爲了兼容性的目的,兩個「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_equivalence。