原文网址:http://zhidao.baidu.com/question/157467188.html
乱码原因:
因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了。
解决方法:
在控制台打印的地方用一个转码就ok了,打印的时候这么写:
print myname.decode('UTF-8').encode('GBK')
比较通用的方法应该是:
import sys
type = sys.getfilesystemencoding()
print myname.decode('UTF-8').encode(type)
--------------------------------------------------------------------------
你需要的是让编码用实际编码而不是 ascii
1.
对需要 str->unicode 的代码,可以在前边写上
import sys
reload(sys)
sys.setdefaultencoding('utf8')
把 str 编码由 ascii 改为 utf8 (或 gb18030)
2.
python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii