2017-05-14 44 views
0

unicodedata.decomposition按順序將Unicode字符分解爲其組件,返回值是由空格分隔的代碼點字符串。 如標準庫與unicodedata.decomposition有相反之處嗎?

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

我與具有多個變音符號Unicode字符的工作(越南,如E,O),不要總是在需要的順序分解(我需要剝去聲標,但不其他變音符號,如果有的話)。

所以,我正在尋找一個可以編寫代碼點中的字符的函數,例如,

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

ADDENDUM:雖然我知道寫的是我的解決特定問題(越南)是平凡的一個功能,我已經發布了這個問題的前提是一般的問題已經有人在我之前得到解決,它可能在標準庫中的某處。

回答

1

答案實際上是在Python文檔你的鏈接不遠處,它的下面的功能:unicodedata.normalize

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

不俗的表現。謝謝。 –