1
在我的項目中,我需要處理許多不同的語言,其中之一是日語。 (我自己不說)。使用不同的UTF-8編碼測試視覺相同的字符的相等性。 (日語)
我需要比較兩個字符串,看看它們是否相等。一個字符串來自我的計算機上的文件名,另一個字符串來自該確切文件的下載鏈接。這兩個字符串應該是相同的。
原來相同的字符可以用不同的方式編碼或類似的東西。
看看字符バ,它可以用兩種方式編碼。
\xe3\x83\x90
\xe3\x83\x8f\xe3\x82\x99
數2實際上是一種ハ和゙一起,這導致在相同的字符。正因爲如此,有些字符串會被認爲是不同的,即使它們應該是平等的。 Python是告訴我,
ネバーランド
是不一樣的
ネバーランド
事情我已經嘗試:
而不是檢查確切的平等我嘗試使用相似性:
difflib.SequenceMatcher(None, string1, string2).ratio()
這不幸的是不夠精確。我也嘗試過配置垃圾,但我無法做到足夠精確。亂七八糟的解碼和編碼功能,希望它只會神奇消失。
我見過有些類似的問題,但沒有好的解決方案,恐怕沒有,除非我手動過濾掉這些特殊情況。