【发布时间】:2018-08-20 08:28:12
【问题描述】:
根据py3doc:
unicodedata.decomposition(chr)
将分配给字符chr 的字符分解映射作为字符串返回。一个空字符串是 如果没有定义这样的映射,则返回。
这里我不太明白字符分解映射是怎么定义的,unicodedata.decomposition()和unicodedata.normalize(NFD/NFKD)有什么关系/区别?
请参阅以下示例:
$ python3
>>> import unicodedata
>>> unicodedata.decomposition('⑴')
'<compat> 0028 0031 0029' <-- why not just '0028 0031 0029'?
>>> unicodedata.normalize('NFKD', '⑴')
'(1)'
>>> unicodedata.decomposition('①')
'<circle> 0031' <-- why not just '0031'?
>>> unicodedata.normalize('NFKD', '①')
'1'
>>> unicodedata.decomposition('è')
'0065 0300' <-- like this?
>>> unicodedata.normalize('NFD', 'è') == '\u0065\u0300'
True
>>>
【问题讨论】:
标签: python python-3.x unicode python-unicode