在 API 文档中,http://docs.python.org/2/library/unicodedata.html#unicodedata.normalize http://docs.python.org/2/library/unicodedata.html#unicodedata.normalize。它说
返回正常形式form对于 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 的字符。例如,为了支持不能在符号周围画圆圈的软件,有一组“圆圈数字”,例如①(unicode数字2460)。当我们对其应用规范分解(NFD)时,它不会执行任何操作:
print '%r' % normalize('NFD', u'\u2460') # u'\u2460'
然而,兼容性分解(NFKD)将返回相应的“兼容”字符:
print '%r' % normalize('NFKD', u'\u2460') # 1
See http://en.wikipedia.org/wiki/Unicode_equivalence http://en.wikipedia.org/wiki/Unicode_equivalence更多细节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)