讀過阮一峰的這篇文章后,本以為已經(jīng)理解了編碼問題,直到。。。
http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
python2 的默認編碼是ascii,而windows的默認編碼是簡體中文GBK。
python2默認編碼.PNG
新建一個測試文件
s = '中文'
print s
保存為test.py 在CMD中執(zhí)行,報錯
python編碼報錯.PNG
變量'中文'以GBK碼保存,而python在執(zhí)行的時候以ASCII解碼,所以報錯。
似乎一切正常。
但是如果直接在python shell 中執(zhí)行的話,如圖:
python shell.PNG
變量s為’中文',在內(nèi)存中確實是按GBK編碼‘\xd6\xd0\xce\xc4',但是print輸出的時候卻可以正常解碼輸出。這是為什么?