python2.7 處理unicode和ascii字符串混用問題


python2.7默認的編碼方式為ascii碼,如下可以查詢:

import sys
sys.getdefaultencoding()

如果直接在unicode和ascii字符串之間做計算、比較、連接,都會出錯:

s = '您好'
u = u'您好'
s == u
__main__:1: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal

原因是:在進行同時包含 str 與 unicode 的運算時,Python 一律都把 str 轉換成 unicode 再運算,當然,運算結果也都是 unicode。

正確的處理方法是:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
s = '您好'
u = u'您好'
s == u

結果會返回True

 

 

ref: http://in355hz.iteye.com/blog/1860787

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM