- 编码历史简介:
计算机普及全球的时候,各个国家开始指定自己的编码格式,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被注册了