我试图比较两个字符串,但==运算符失败。如果你打印它们,它们似乎具有相同的值。即使类型是相同的:类str,print(repr())的输出也是相同的,.strip()也没有帮助,与in运算符进行比较也失败
字符串是“Neues Textdokument.txt-Edito”和编辑器的windows窗口名
多亏了@Random Davis的建议,里面似乎有一个西里尔字母,看起来和拉丁字母一模一样。但如果您用以下内容检查字符串a和b: 打印([ord(c)代表a中的c]) 打印([ord(c)代表b中的c]) 它显示的是十进制字母的unicode数字。它们在e和M中分开
结果是字符串看起来是一样的,但是在实际数据中有一些意想不到的unicode西里尔字符,看起来和ASCII字符一样。因此,解决方案是运行以下代码将比较字符串与实际字符串进行比较:
这表明在实际数据中,存在西里尔字母“М”和“Б”,这导致字符串比较返回
False
相关问题 更多 >
编程相关推荐