python 中文乱码

原文网址: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)

 

--------------------------------------------------------------------------

(转)解决UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5……..

你需要的是让编码用实际编码而不是 ascii

1. 
对需要 str->unicode 的代码,可以在前边写上 
import sys 
reload(sys) 
sys.setdefaultencoding('utf8') 
把 str 编码由 ascii 改为 utf8 (或 gb18030)

2. 
python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii

posted @ 2013-01-24 13:59  小妖.OTZ  阅读(269)  评论(0编辑  收藏  举报