python字符编码

字符编码:
ASCII:占一个字节,只支持英文
GBK2312:占两个字节,支持6700+汉字
GBK GB2312的升级版:支持21000+汉字
Unicode:2-4个字节

Unicode作用:
直接支持全球所有语言,每个国家可以不再使用之前自己的旧编码,直接使用unicode
包含了跟全球所有国家编码的映射关系

Unicode解决了字符于二进制的对应关系,由于Unicode对比ASCII编码占用字节增加一倍,同时也为了解决存储和网络传输的问题,出现了Unicode Transformation Format,学术名:UTF,即:对unicode中的进行转换,以便于存储和网络传输时可以节省空间!

UTF-8: 使用1、2、3、4个字节表示所有字符;优先使用1个字符、无法满足则使增加一个字节,最多4个字节。英文占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个。
UTF-16: 使用2、4个字节表示所有字符;优先使用2个字节,否则使用4个字节表示。
UTF-32: 使用4个字节表示所有字符。

总结:UTF 是为unicode编码 设计 的一种 在存储 和传输时节省空间的编码方案

字符在硬盘上的存储,无论以什么编码在内存里显示字符,存在硬盘上都是二进制的。

注意的是:存在硬盘上时是以什么编码保存,再从硬盘上读取时,就必须以相同的编码读取,不然会出现乱码。

python3的执行过程:
解释器找到代码文件,把代码字符串按文件头定义的编码加载都内存中,转成unicode
把代码字符串按照语法规则进行解释
所有的变量字符都会以unicode编码生命

常见的编码错误的原因:
python解释器的默认编码
python源文件文件编码
terminal使用的编码
操作系统的语言设置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章