1
在我的项目中,我需要处理许多不同的语言,其中之一是日语。 (我自己不说)。使用不同的UTF-8编码测试视觉相同的字符的相等性。 (日语)
我需要比较两个字符串,看看它们是否相等。一个字符串来自我的计算机上的文件名,另一个字符串来自该确切文件的下载链接。这两个字符串应该是相同的。
原来相同的字符可以用不同的方式编码或类似的东西。
看看字符バ,它可以用两种方式编码。
\xe3\x83\x90
\xe3\x83\x8f\xe3\x82\x99
数2实际上是一种ハ和゙一起,这导致在相同的字符。正因为如此,有些字符串会被认为是不同的,即使它们应该是平等的。 Python是告诉我,
ネバーランド
是不一样的
ネバーランド
事情我已经尝试:
而不是检查确切的平等我尝试使用相似性:
difflib.SequenceMatcher(None, string1, string2).ratio()
这不幸的是不够精确。我也尝试过配置垃圾,但我无法做到足够精确。乱七八糟的解码和编码功能,希望它只会神奇消失。
我见过有些类似的问题,但没有好的解决方案,恐怕没有,除非我手动过滤掉这些特殊情况。