返回 False,因为第一个是 Str 对象,第二个是 Unicode 对象。
但是,由于它们都是 Ramón,我该怎么做才能返回 True。
我尝试将第一个转换为 Unicode 对象:
>>> varString = 'Ramón'
>>> varUnicode = u'Ramón'
>>> varString == varUnicode
False
>>> newUnicode == unicode(varString, encoding='unicode-escape')
>>> varString; varUnicode; newUnicode
'Ram\xa2n'
u'Ram\xf3n'
u'Ram\xa2n'
>>> varUnicode == newUnicode
False
它们有不同的编码。我能做些什么?谢谢!
请您参考如下方法:
varString 不太可能在 unicode-escape 中编码。当 Python 解释器将它在 >>> 提示符下读取的内容解码为 unicode 对象时,它使用 sys.stdin.encoding 的编码。因此,您可以在自己解码 str 对象时使用相同的编码:
>>> import sys
>>> sys.stdin.encoding
'UTF-8'
>>> varString = 'Ramón'
>>> varUnicode = u'Ramón'
>>> newUnicode = unicode(varString, encoding='UTF-8') # or encoding=sys.stdin.encoding
>>> varString; varUnicode; newUnicode
'Ram\xc3\xb3n'
u'Ram\xf3n'
u'Ram\xf3n'
>>> varUnicode == newUnicode
True
