我正在使用 Python (v3.3) 进行字符串操作,我想知道是否有一种可预测的方法来检测给定字符上添加的变音标记。
例如,'α' # ord('α') = 945)
(希腊语未标记的 alpha)和 'ᾶ' # ord('ᾶ') 之间是否存在某种关系= 8118
(带抑扬符号的希腊字母)和 'ω' # ord('ω') = 969
(希腊字母无标记 omega)和 'ῶ' # ord('ῶ ') = 8182
(带有抑扬符的希腊欧米茄)?
是否可以进行任何操作来清除变音符号?或者添加变音符号,例如标记长元音时:'ᾱ' # ord('ᾱ') = 8113
?
谢谢!
编辑:我已经使用了 unidecode
包和 unicodedata
。我不只是想标准化字符串;我对了解幕后发生的字节操作的资源感兴趣,例如向标准 alpha 添加抑扬符或长音符号。提出这个问题的另一种方式是,chr(945) # 'α'
如何在非常低的级别上变成或与 chr(8113) # 'ᾱ'
相关?也许我以完全错误的方式思考这个(文本),我也有兴趣学习。
这个问题实际上与 Python 没有太大关系,因为它与一般的文本编码有关,但我提到 Python 只是为了以防万一它的任何特殊性发挥作用。
编辑 2:我还应该补充一点,我对像 unidecode
这样的东西如何工作更感兴趣,而不是目前实际使用它。 unidecode('ῶ')
和 unidecode('ὄ') # 这是一个 omicron,而不是 'o'
都返回 'o'
,目前,该返回值对我来说不如对 unidecode
模块如何获得该返回值的更高层次的理解那么有帮助。
最佳答案
正如 @Jongware 和 @SimeonVisser 指出的那样,“Unicode 基本上只是一个大的查找表”,因此我所寻找的内容有一些 secret 。
标记为已回答 - 希望这里的直接性能够帮助将来遇到类似问题的人。
关于python - Python 中的 Unicode 和(希腊语)变音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20458503/