Python两个相同的字符串被视为不同的

2024-05-12 17:33:58 发布

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

我有两个字符串,从所有迹象来看都是一样的:

x1 = 'N C Soft - NCSOFT_Guild Wars 2 December 2013 :: BNLX_AD_Parallax_160x600'
x2 = 'N C Soft - NCSOFT_Guild Wars 2 December 2013 :: BNLX_CT_Parallax_160X600'

但是,检查是否相等表明它们不是。在

^{pr2}$

我还尝试从命令提示符中复制这两个字符串,并将它们作为新变量粘贴回去,但它们仍然不相等。我80%肯定这是因为它们的编码方式很奇怪,插入了一些我看不见的奇怪字符,但使用type()都只是显示为字符串。在

有没有办法让我看到“真正的”绳子?感谢任何帮助。在


Tags: 字符串adsoftx1x2ct命令提示符guild
1条回答
网友
1楼 · 发布于 2024-05-12 17:33:58

它们不一样;使用^{}可以清楚地看出这两个值之间的区别:

>>> import difflib
>>> print '\n'.join(difflib.ndiff([x1], [x2]))
- N C Soft - NCSOFT_Guild Wars 2 December 2013 :: BNLX_AD_Parallax_160x600
?                                                      ^^             ^

+ N C Soft - NCSOFT_Guild Wars 2 December 2013 :: BNLX_CT_Parallax_160X600
?                                                      ^^             ^

一般来说,当有疑问时,使用^{}来查看表示。python2将对字符串中任何不可打印或非ASCII字符使用转义符,任何“有趣”的字符都会像大拇指一样突出。在python3中,使用^{} function可以得到与repr()相同的结果,这就不那么保守了,Unicode中充斥着乍一看都一样的字符组合。在

对于仍然看不到两者之间有什么变化的字符串,上面的difflib工具还可以帮助您指出到底发生了什么变化。在

相关问题 更多 >