我想将Technical Diploma (±12 years)
与浏览器中显示的相同字符串进行比较。我在Python中运行webdriver测试,它从数据库中获取Technical Diploma (±12 years)
并尝试与浏览器中的字符串进行比较。我在尝试比较时收到此错误
UnicodeWarning:Unicode等同比较无法将两个参数都转换为Unicode - 将它们解释为不等等
如何在Python中比较这些非ASCII字符串?
答案 0 :(得分:6)
您的一个字符串不是unicode值,而是bytestring。您希望首先通过解码将其转换为unicode:
'Non-ASCII value containing UTF8: \xc2\xb1'.decode('utf8')
但是你必须首先弄清楚bytestring的编码方式。
如果您已定义了源文件编码,并且您在代码中将字符串定义为文字,请确保通过在字符串前加u''
前缀将其定义为Unicode文字:
u'Technical Diploma (±12 years)'
我强烈建议您在继续之前阅读Python Unicode HOWTO。
答案 1 :(得分:1)
Python告诉你问题:首先转换为UTF-8。
示例:
>>> u1='Technical Diploma (±12 years)'
>>> u2=u'Technical Diploma (±12 years)'
>>> u1==u2
__main__:1: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
False
>>> u1.decode('utf-8')==u2
True
>>>