alv*_*vas 17 python unicode encoding normalization unicode-normalization
所以在API文档中,http://docs.python.org/2/library/unicodedata.html#unicodedata.normalize.它说
返回Unicode字符串unistr的正常表单形式.表单的有效值为"NFC","NFKC","NFD"和"NFKD"
文档相当模糊,有人可以valid values
用一些例子解释一下吗?
geo*_*org 23
我发现文档非常清楚,但这里有一些代码示例:
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 Ç
Run Code Online (Sandbox Code Playgroud)
'D'(=分解)形式都将单个组合字符(如ä
)转换为两个字符(a
+两个点).两个'C'(=组合)形式都是相反的.
两个"K"表单用于转换添加到Unicode的字符以实现兼容性目的.例如,为了支持不能在符号周围绘制圆圈的软件,有一组"带圆圈的数字",如①(unicode number 2460).当我们对它应用规范分解(NFD)时,它不会做任何事情:
print '%r' % normalize('NFD', u'\u2460') # u'\u2460'
Run Code Online (Sandbox Code Playgroud)
但是,兼容性分解(NFKD)将返回相应的"兼容"字符:
print '%r' % normalize('NFKD', u'\u2460') # 1
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参见http://en.wikipedia.org/wiki/Unicode_equivalence.
归档时间: |
|
查看次数: |
14556 次 |
最近记录: |