Python 如何比较两个非ASCII字符串
我想将Python 如何比较两个非ASCII字符串,python,unicode,python-2.7,ascii,Python,Unicode,Python 2.7,Ascii,我想将技术文凭(±12年)与浏览器中显示的相同字符串进行比较。我正在用Python运行一个webdriver测试,它从db获取技术文凭(±12年),并尝试与浏览器中的字符串进行比较。当我尝试比较时,我得到了这个错误 Unicode相等比较无法将两个参数转换为Unicode-将它们解释为不相等 如何在Python中比较这些非ASCII字符串?其中一个字符串不是unicode值,而是bytestring。要将其转换为unicode,请先对其进行解码: 'Non-ASCII value contain
技术文凭(±12年)
与浏览器中显示的相同字符串进行比较。我正在用Python运行一个webdriver测试,它从db获取技术文凭(±12年)
,并尝试与浏览器中的字符串进行比较。当我尝试比较时,我得到了这个错误
Unicode相等比较无法将两个参数转换为Unicode-将它们解释为不相等
如何在Python中比较这些非ASCII字符串?其中一个字符串不是unicode值,而是bytestring。要将其转换为unicode,请先对其进行解码:
'Non-ASCII value containing UTF8: \xc2\xb1'.decode('utf8')
但是您首先必须弄清楚bytestring的编码是什么
如果已定义源文件编码,并且要在代码中将字符串定义为文字,请确保在字符串前面加上u''
,将其定义为Unicode文字:
但是,我强烈建议您在继续之前先阅读一下。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
>>>
>>> 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
>>>