在python中将字符串与unicode字符进行比较

2024-05-14 00:06:39 发布

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

下面是子字符串Ritē

我有两个字符串,一个来自zipfile提取的文件名。我使用filename.encode('cp437').decode('utf-8')正确提取了所有路径。另一个是使用plistlib.readPlist().plist读取的。两者都使用print()正确打印。然而,相比之下,它们并不相同。我试图在utf-8中对它们进行编码,下面是它们的样子:

  • Rite\xcc\x84
  • Rit\xc4\x93
    一个解释字符e,另一个解释'LATIN SMALL LETTER E WITH MACRON'
    为了比较这两个字符串,有人对此有什么建议吗?先谢谢你

Tags: 字符串路径编码文件名filenameutfencodeplist
1条回答
网友
1楼 · 发布于 2024-05-14 00:06:39

根据评论,听起来这就是你想要的:

import unicodedata

foo = 'Rit\u0113'
bar = 'Rite\u0304'

print(foo, bar)

print(unicodedata.normalize('NFD', foo))
print(unicodedata.normalize('NFD', bar))

assert unicodedata.normalize('NFD', foo) == unicodedata.normalize('NFD', bar)

我选择NFD作为表单,但您可能更喜欢NFC

相关问题 更多 >