测试具有不同UTF8编码的视觉相同字符的相等性。(日语)

2024-06-16 12:57:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的项目中,我需要处理许多不同的语言,其中之一是日语。(我自己不说)。你知道吗

我需要比较两个字符串,看它们是否相等。一个字符串来自我计算机上的文件名,另一个字符串来自该文件的下载链接。这两个字符串应该相同。你知道吗

原来相同的字符可以用不同的方式编码。你知道吗

看看字符,它有两种编码方式。你知道吗

  1. \xe3\x83\x90
  2. \xe3\x83\x8f\xe3\x82\x99

数字2实际上是一个和一个加在一起,结果是相同的字符。因此,有些字符串将被视为不同的字符串,即使它们应该相等。Python告诉我

ネバーランド

不等于

ネバーランド

我尝试过的事情:

  • 我没有检查是否完全相等,而是尝试使用相似性:

    不幸的是,这不够精确。我也尝试过配置垃圾,但我不能得到它足够精确。

  • 乱搞解码和编码功能,希望它只是神奇地消失。

我见过一些类似的问题,但没有很好的解决办法,我恐怕没有,除非我过滤掉这些特殊情况手动。你知道吗


Tags: 文件项目字符串语言编码链接文件名计算机
1条回答
网友
1楼 · 发布于 2024-06-16 12:57:56

规范化为其组合形式。但是使用unicode操作,当然不是UTF-8。你知道吗

>>> u'ネバーランド' == u'ネバーランド'
False
>>> unicodedata.normalize('NFC', u'ネバーランド') == u'ネバーランド'
True

相关问题 更多 >