python 的内部编码都是unicode, 但是外面的编码格式很多,在国内很多网站都适用的是gb2312。
需要在terminal正常显示中文的必要条件:
1, terminal的编码格式必须支持中文的编码格式,最好设置为gb2312
这样在terminal适用cat命令,显出出来的中文就是正确的。
2,python代码中的设置
url_content=urllib2.urlopen(url_href)
text = url_contetn.read() #这个地方已经被编码为unicode
需要正常显示,大打印的时候需要 text.encode("gb2312"),这样就可以正常显示中文。
知识要点:
nicode对象的encode和decode方法
s.decode -------->将s解码成unicode,参数指定的是s本来的编码方式。这个和unicode(s,encodename)是一样的。
u.encode -------->将unicode编码成str对象,参数指定使用的编码方式。
助记:decode to unicode from parameter
encode to parameter from unicode
只有decode方法和unicode构造函数可以得到unicode对象。
strobj.decode("cp936").encode("utf-16")
ref 1 : http://www.cnblogs.com/ymy124/archive/2012/06/23/2559282.html
ref 2 : http://appofis.iteye.com/blog/443206