打印显示相同的字符串,但如果 == 失败

Print shows the same String but if == fails

我正在尝试比较 2 个字符串,但 == 运算符失败。如果您打印它们,它们似乎具有相同的值。即使类型相同:class str,print(repr( )) 的输出是相同的,.strip() 也无济于事,与 in 运算符比较也失败。

字符串是“Neues Textdokument.txt - Edito”和 windows window 编辑的名字

感谢@Random Davis 的建议,它似乎是一个西里尔字母,看起来和拉丁字母一模一样。但是如果你检查字符串 a 和 b: print([ord(c) for c in a]) print([ord(c) for c in b]) 它显示了十进制字母的 unicode 编号。它们在 e 和 M

中分开

原来字符串看起来一样,但实际数据中有一些意想不到的 unicode 西里尔字符,看起来与 ASCII 字符相同。因此,解决方案是 运行 以下代码将比较字符串与实际字符串进行比较:

print([ord(c) for c in a])
print([ord(c) for c in b])

这表明在实际数据中,存在西里尔字符“М”和“е”,导致字符串比较为return False.