python编码问题

读过阮一峰的这篇文章后,本以为已经理解了编码问题,直到。。。
http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

python2 的默认编码是ascii,而windows的默认编码是简体中文GBK。

python编码问题_第1张图片
python2默认编码.PNG

新建一个测试文件
s = '中文'
print s
保存为test.py 在CMD中执行,报错

python编码问题_第2张图片
python编码报错.PNG

变量'中文'以GBK码保存,而python在执行的时候以ASCII解码,所以报错。
似乎一切正常。
但是如果直接在python shell 中执行的话,如图:

python编码问题_第3张图片
python shell.PNG

变量s为’中文',在内存中确实是按GBK编码‘\xd6\xd0\xce\xc4',但是print输出的时候却可以正常解码输出。这是为什么?

你可能感兴趣的:(python编码问题)