python中的编码问题unicode, encode, decode

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值