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

Compare strings with unicode characters in python

这里是子串Ritē

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

根据评论,这听起来像是您要查找的内容:

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