python2与python3编码_python2和python3的编码问题

python2中有两种类型

str字符串和unicode字符串

python3则改成了

bytes和str字符串

在python2中‘xxx’和b‘xxx’都是str字符串,u‘xxx’是unicode字符串,即python3中的bytes在python2是不存在的,都归属于str字符串

在python3中unicode是不存在的,被归并到str字符串里面的,即‘xxx’和u‘xxx’都是str字符串,b‘xxx’是bytes

主要的原因是python2的默认编码是asscii码,而python3的默认编码是utf-8

utf-8相较于asscii能容纳更多的字符,举个例子,utf-8能正常显示中文,而asscii则不行。具体有什么差异就不详细说了。

所以在python2中如果要显示中文需要做编码处理

编码处理的一般方式是

str通过decode函数编码成unicode,然后通过encode编码成str

而python3中可以正常显示中文,不做编码处理也不会有什么大问题

随便说一下python2中str有encode和decode两个函数,encode用来将unicode编码成指定的编码,decode用来将指定编码编码成unicode

encode其实是将字符串变成bytes,因为python2没有bytes所以其还是str字符串。

python3中将bytes和str拆开了,str就只有encode函数可以使用了,使用encode变成bytes之后,bytes类型可以使用decode函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值