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
