【发布时间】:2013-01-14 00:36:36
【问题描述】:
我花了大约四个小时研究“UnicodeWarning:Unicode 不相等比较”问题。通常,几个小时后,我可以自己回答最棘手的问题,但这里并非如此。当然,我的意思是对我自己来说“棘手”。 ;-)
我知道类似的问题在网上和这个网站上都有回答,但是太菜鸟无法很好地理解答案对我没有任何帮助。也许对我来说最好的方法就是让有人指出我的代码中需要更改的地方。
我在 Windows XP 上使用 Python 2.5。
我发现了什么
我知道我的问题与我试图比较苹果和橙子(或 Unicode 和 ASCII,或类似的东西,比如字节)有关。我不知道解决这个问题的实用方法。
这是我的代码:
# coding: iso-8859-1
import sys
from easygui import *
actual_answer = "pureté"
answer_given = enterbox("Type your answer!\n\nHint: 'pureté'")
if answer_given == actual_answer:
msgbox("Correct! The answer is 'pureté'")
else:
msgbox("Bug!")
这是我收到的错误消息:
UnicodeWarning:Unicode 相等比较未能同时转换两者 Unicode 的参数 - 将它们解释为不相等
【问题讨论】:
-
如果在 Python 3 中,变量中的字符串已经是 unicode,并且没有库会返回字节串。这是 Python 2。
-
无论哪种方式 OP 都清楚地表明他在 Windows XP 上的 Python 2.5 上......