Python3 编码问题

python3中encode和decode跟python2还是有一定的区别的,在python3中: 

  encode(编码):按照某种规则将“文本”转换为“字节流”。  python 3中表示:unicode变成str

   decode(解码):将“字节流”按照某种规则转换成“文本”。   python3中表示:str变成unicode

字符串在Python内部的表示是Unicode编码,因此在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码。

  u代表Unicode类型,s代表str类型

  u.encode('...'):只要你填写了正确的编码,基本上总是能成功的。就像任何文件都可以压缩成zip文件。

 

  u.decode('...'):没有任何意义,因为decode是将str转为unicode编码,而u本身就是unicode编码的。

 

  s.encode('...'):在python 3中,将产生一个编码后的byte类型的字符串(这里有点像Python 2.x中的str),byte类型的字符串是支持解码操作的。

 

  s.decode('...'):运行都会出错。因为python 3中的str类型对象有点像Python 2中的unicode, 而decode是将str转为unicode编码,所以str仅有一个encode方法,调用这个方法后将产生一个编码后的byte类型的字符。

 

按照上述规则对一般的字符编码解码可以基本解决,同时如果还有一些困惑可以百科一下Unicode,gbk等常用编码格式,了解一下他们的区别和编码原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值