我发现文档很清楚,但下面是几个代码示例:
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'(=分解)形式将单个组合字符(如ä)转换为两个字符(两个点). “C”(=组合)表单都相反.
两个“K”形式用于转换添加到Unicode中的字符以实现兼容性.例如,为了支持不能围绕符号绘制圆圈的软件,有一组“圆圈数字”,如①(unicode号码2460).当我们应用规范分解(NFD)时,它不会做任何事情:
print '%r' % normalize('NFD', u'\u2460') # u'\u2460'
但是,兼容性分解(NFKD)将返回相应的“兼容”字符:
print '%r' % normalize('NFKD', u'\u2460') # 1