Skip to main content
 首页 » 编程设计

python之两个明显相等的 Python Unicode UTF8 编码字符串不匹配

2025年05月04日2252php

>>> str1 = unicode('María','utf8') 
>>> str2 = u'María'.encode('utf8') 
>>> str1 == str2 
False 

这怎么可能?

为了以防万一,我使用的是 iPython Notebook。

请您参考如下方法:

你有一个 unicode 字符串和一个 byte 字符串。它们不是一回事。

一个拥有 Unicode 值,María。另一个包含一个 UTF-8 编码的字节序列,'Mar\xc3\xada'。

Python 2 在比较 Unicode 和字节字符串值时确实进行了隐式转换,但您不应该指望这种转换,它完全取决于您系统的默认编解码器集。

如果您还不知道 Unicode 到底是什么,或者为什么 UTF-8 不是同一回事,或者想了解有关编码的任何其他信息,请参阅: