python2与python3字符串编码区别,类型区别

  • 编码历史简介:

计算机普及全球的时候,各个国家开始指定自己的编码格式,Unicode编码很好的解决了这个问题,称为万国码,但是每个字符都站3~4个字节,很占空间,后来出现了utf-8编码较好解决了字符占空间大的问题 ,后来全球编码基本都是utf-8

  • 编码转换:

任何编码都可以与Unicode编码转换.例如gbk(cp936), utf-8
当使用with open(…) as f:时,Unicode编码和不是Unicode都用’w’,二进制数据用’wb’

  • python3字符串类型和编码:

Python3终端默认创建字符串为 Unicode,(没有Unicode编码的文件,所以写Unicode编码格式的文件时,当没有手动转码时,会默认按照Python解释器的编码格式(例如utf-8)输出)
Python3中str类型和bytes类型之间分别使用encode和decode对应相互转换
str:就是Unicode编码,编码,默认Python解释器的编码格式
bytes:非Unicode编码(例如gbk,utf-8),解码
也就是说在Python3中凡是Unicode编码都是字符串str类型,不是Unicode编码就是bytes类型,

  • python2字符串类型和编码:

终端创建的字符串编码取决于操作系统:Linux下是utf-8,简体中文Windows是 GBK
Python2中str类型和unicode类型之间使用encode和decode分别转换
str:非Unicode编码 解码
unicode:Unicode编码,默认编码是ascii(不支持中文),编码
查询Windows系统的默认编码:在dos下输出chcp
bug重点:

>>> import sys
>>> sys.getdefaultencoding() #查询当前Python2环境编码格式
'ascii'
>>> reload(sys)
<module 'sys' (built-in)>
>>> sys.setdefaultencoding('utf-8') #设置Python2环境编码格式为'utf-8'
>>> sys.getdefaultencoding()
'utf-8'

。。。版权来自walle被注册了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值