Edu*_*tin 1 python unicode utf-8
>>> str1 = unicode('María','utf8')
>>> str2 = u'María'.encode('utf8')
>>> str1 == str2
False
Run Code Online (Sandbox Code Playgroud)
怎么可能?
如果它是相关的,我正在使用iPython笔记本.
你有一个unicode字符串和一个字节字符串.它们不是同一件事.
一个拥有Unicode值,María.另一个包含UTF-8编码的字节序列'Mar\xc3\xada'.
Python 2在比较Unicode和字节字符串值时会进行隐式转换,但您不应指望该转换,它完全取决于为系统设置的默认编解码器.
如果你还不知道Unicode到底是什么,或者为什么UTF-8不是同一个东西,或者想知道关于编码的任何其他信息,请参阅:
绝对最低每个软件开发人员绝对必须知道关于Unicode和字符集(没有任何借口!)作者:Joel Spolsky
Ned Batchelder的实用Unicode