[英]How can I compare unicode type with str type in python of Chinese?
我以python 2.7为例:
a = u'你好'
b = '你好'
我尝试了以下代码,但失败了
print a.encode('UTF-8') == b #return False
如何比较它们相等?
我希望您使用的是python3
,这两个变量都是string
您不需要更改为任何string
。 只需将它们两者进行比较即可。
>>> a = u'你好'
>>> b = '你好'
>>> type(a)
<class 'str'>
>>> type(b)
<class 'str'>
>>> a == b
True
如果您使用的是python2
您的尝试将起作用。
很可能您的Python源文件未使用UTF-8编码。 变量b
将包含这些引号之间的任何字节 。 这些字节将取决于编码。 例如
# coding: utf-8
print repr("你好")
打印: '\\xe4\\xbd\\xa0\\xe5\\xa5\\xbd'
现在,如果我们将源文件另存为GB2312并更新声明:
# coding: GB2312
print repr("你好")
打印: '\\xc4\\xe3\\xba\\xc3'
无论如何,如果您有一个带有文本的字节数组,则还需要知道这些字节的编码,否则将无法可靠地解释它们。
如果无论源文件编码如何,都需要UTF-8字节,则可以写u'你好'.encode('utf-8')
将始终返回'\\xe4\\xbd\\xa0\\xe5\\xa5\\xbd'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.