2024-04-20 12:39:54 发布
网友
Python对单词МАМА和MAMA的处理方式不同,因为其中一个是用拉丁语编写的,另一个是用西里尔语编写的。你知道吗
МАМА
MAMA
如何让python将它们视为一个字符串?你知道吗
我只关心变形。你知道吗
您可能需要使用normalize方法。 https://docs.python.org/2/library/unicodedata.html#unicodedata.normalize
有一个python库可以将西里尔语翻译成拉丁unicode,名为^{}
>>> from transliterate import translit >>> >>> cy = u'\u041c\u0410\u041c\u0410' >>> en = u'MAMA' >>> cy == en False >>> cy_converted = translit(cy, 'ru', reversed=True) >>> cy_converted == en True >>> cy_converted u'MAMA'
音译是没有帮助的(它会把西里尔字母p变成拉丁字母R)。乍一看,Unicode兼容形式(NFKD或NFKC)看起来很有希望,但这会将U+041C(西里尔大写字母EM)变成U+041C(而不是U+004D(拉丁文大写字母EM))——所以这行不通。你知道吗
唯一的解决方案是构建自己的同构表,并在比较之前将所有字符串转换为规范形式。你知道吗
注意:当我说“西里尔字母p”时,我作弊并使用了拉丁语变体-我没有一个简单的方法来输入西里尔字母。你知道吗
您可能需要使用normalize方法。 https://docs.python.org/2/library/unicodedata.html#unicodedata.normalize
有一个python库可以将西里尔语翻译成拉丁unicode,名为^{}
音译是没有帮助的(它会把西里尔字母p变成拉丁字母R)。乍一看,Unicode兼容形式(NFKD或NFKC)看起来很有希望,但这会将U+041C(西里尔大写字母EM)变成U+041C(而不是U+004D(拉丁文大写字母EM))——所以这行不通。你知道吗
唯一的解决方案是构建自己的同构表,并在比较之前将所有字符串转换为规范形式。你知道吗
注意:当我说“西里尔字母p”时,我作弊并使用了拉丁语变体-我没有一个简单的方法来输入西里尔字母。你知道吗
相关问题 更多 >
编程相关推荐