在Python中,是否有一种标准方法来规范化Unicode字符串,以便它仅包含可用于表示它的最简单的Unicode实体?
我的意思是,是否有一种方式可以将类似于['LATIN SMALL LETTER A','COMBINING ACUTE ACCENT']
这样的序列转换为['LATIN SMALL LETTER A WITH ACUTE']
?
看看问题所在:
>>> import unicodedata
>>> char = "á"
>>> len(char)
1
>>> [ unicodedata.name(c) for c in char ]
['LATIN SMALL LETTER A WITH ACUTE']
但是现在:
>>> char = "á"
>>> len(char)
2
>>> [ unicodedata.name(c) for c in char ]
['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT']
当然我可以遍历所有字符并进行手动替换等操作,但这样做不够高效,而且我很确定会错过一半的特殊情况,并犯错误。