我想Technical Diploma (±12 years)
与浏览器中存在的相同字符串进行比较。我在 Python 中运行 webdriver 测试,它Technical Diploma (±12 years)
从数据库中获取并尝试与浏览器中存在的字符串进行比较。当我尝试比较时出现此错误
UnicodeWarning: Unicode 相等比较未能将两个参数转换为 Unicode - 将它们解释为不相等
如何在 Python 中比较这些非 ASCII 字符串?
我想Technical Diploma (±12 years)
与浏览器中存在的相同字符串进行比较。我在 Python 中运行 webdriver 测试,它Technical Diploma (±12 years)
从数据库中获取并尝试与浏览器中存在的字符串进行比较。当我尝试比较时出现此错误
UnicodeWarning: Unicode 相等比较未能将两个参数转换为 Unicode - 将它们解释为不相等
如何在 Python 中比较这些非 ASCII 字符串?
您的字符串之一不是 unicode 值,而是字节串。您想通过首先解码将其转换为 unicode:
'Non-ASCII value containing UTF8: \xc2\xb1'.decode('utf8')
但是您首先必须弄清楚字节串的编码是什么。
如果您已经定义了源文件编码并且您在代码中将字符串定义为文字,请确保通过在字符串前面加上前缀将其定义为 Unicode 文字u''
:
u'Technical Diploma (±12 years)'
但是,我强烈建议您在继续之前阅读Python Unicode HOWTO 。
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
>>>