标准库是否与unicodedata.decomposition相反?

时间:2017-05-14 16:35:36

标签: python python-3.x unicode python-unicode

https://plnkr.co/edit/2TiWlPG7cVIQ56zR5UGX将Unicode字符依次分解为其组件,返回值是由空格分隔的代码点字符串。 E.g

>>> unicodedata.decomposition("á") # 0061 is 'a' and 0301 is the 'acute accent' 
'0061 0301'

我正在使用具有多个变音符号(越南语,例如ế,ở)的Unicode字符,并且不会总是以所需的顺序分解(我需要去除音调标记,但不是其他变音符号,如果有的话) )。

所以,我正在寻找一个可以从代码点组成字符的函数,例如

>>> compose([0x0065, 0x0302]) # 'e', 'circumflex'
'ê'

ADDENDUM:虽然我知道编写一个解决我的特定问题(越南语)的函数是微不足道的,但我发布这个问题时假设一般问题已由我之前的某个人解决,而且它是也许在标准库中的某个地方。

1 个答案:

答案 0 :(得分:1)

答案实际上离你在python doc中的链接不远,它的功能如下:unicodedata.normalize

>>> unicodedata.normalize('NFC', '\u0065\u0302')
'ê'