[英]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.