Skip to main content
 首页 » 编程设计

python之这些字符有何不同

2025年05月04日13虾米姐

我不确定为什么这些字符不同,因为它们在视觉上看起来是一样的。它们是同一角色的不同表现形式吗?或者实际上是不同的角色?是否有一种方法可以检查它们是否相等,从而导致 True?

>>> s = u'\u2022'  
>>> ss = '•' 
>>> s == ss 
False 
>>> print u'\u2022' , '•' 
• • 
>>> ss = unicode(ss) 
>>> ss == s 
False 
>>> repr(ss) 
"u'\\xe2\\x80\\xa2'" 
>>> repr(s) 
"u'\\u2022'" 

请您参考如下方法:

u"\u2022"(您的s)是一个包含项目符号字符的 Unicode 字符串(类型 unicode)。

"\xe2\x80\xa2"(您的 ss)是一个字节字符串(类型 str),包含用于将项目符号字符编码为 UTF-8。

您可以使用 str.decode 和 unicode.decode 将一个转换为另一个:

>>> s_encode = s.encode("UTF-8") 
>>> s_encode == ss 
True 
 
>>> ss_decode = ss.decode("UTF-8") 
>>> ss_decode == s 
True