2013-12-08 285 views
1

我正在處理Python(v3.3)中的字符串操作,我想知道是否有可預測的方式來檢測給定字符上添加變音符號。Python中的(希臘語)變音符號

因此,例如有'α' # ord('α') = 945)(希臘無人盯防的α)和'ᾶ' # ord('ᾶ') = 8118(用抑揚希臘字母)和'ω' # ord('ω') = 969(希臘無人盯防的ω)和'ῶ' # ord('ῶ') = 8182(用抑揚希臘歐米茄)有一定的關係?

是否有任何操作可以完成清除變音符號?或者添加一個變音符號,例如在標記長元音時:'ᾱ' # ord('ᾱ') = 8113

謝謝!

編輯:我玩過unidecode包和unicodedata。我不想簡單地將字符串標準化;我對資源感興趣,以便理解在幕後發生的字節操作,例如,將旋鈕或宏標記添加到標準字母。提出這個問題的另一種方式是chr(945) # 'α'如何在很低的水平上變得或與chr(8113) # 'ᾱ'有關?也許我正在以完全錯誤的方式來思考這個(文本),我也有興趣去學習。

這個問題實際上與Python沒有太大的關係,因爲它與文本編碼一般,但我提到Python,以防萬一它的特性發揮作用。

編輯2:我還應該補充一點,我更喜歡unidecode這樣的東西比現在實際使用它更有效。 unidecode('ῶ')unidecode('ὄ') # that's an omicron, not an 'o'均返回'o',並且該返回值目前對我沒有幫助,因爲它更高層次地瞭解unidecode模塊如何達到該返回值。

+1

你可能想看看Unicode字符串*規範化*。除此之外,我認爲這個問題還有點太模糊。 –

+0

http://stackoverflow.com/questions/517923/what-is-the-best-way-to-remove-accents-in-a-python-unicode-string – NPE

+0

也http://stackoverflow.com/questions/ 4162603/python-and-character-normalization – NPE

回答

1

正如@Jongware和@SimeonVisser指出的那樣,「Unicode基本上只是一個很大的查找表」,所以在我所尋找的內容中有祕密的調味。

標記爲已答覆 - 希望這裏的直接性能夠幫助將來有類似問題的人。

+1

剛剛偶然發現了這個[Unicode/UTF8](http://stackoverflow.com/questions/313555/light-c-unicode-library)問題,和[utf8proc](http://www.flexiguided.de/publications .utf8proc.en.html)建議可能是值得檢查的東西。其功能包括分解和規範化,正是你想在這裏使用的。 – usr2564301