在Python 2.x中,Unicode的设计目标是通过在两种类型之间进行隐式转换来实现Unicode和字节字符串之间的透明操作。比较时u"" == ""
,unicode
LHS首先会自动编码为字节字符串,然后再与str
RHS进行比较。这就是为什么它回来了True
。
相反,Python 3.x从Python 2中的一堆乱码中学到了东西,因此决定将unicode与字节字符串的所有内容都明确化。因此,b"" == ""
是False
因为字节字符串不再自动转换为unicode进行比较。