二进制:
ascll:只能存英文和拉听字符,一个字符占一个字节,8位
gb2312:只能存6700多个中文,1980年
gbk1.0:能存2万多字符,1995年
gbk18030:2000 27000万字符
unicode:统一各个国家的编码,万国码。每个字节占四个字节,
最初表现形式utf-32,一个字符占4个字节,后面出现了utf-16,一个字符占2个字节或者2个以上(65535个字符),
最后出现utf-8:英文用ascll来存,一个中文占三个字节,其他文字有占2个字节的。
所有的在中国发行的软件都必须支持gb18030字符编码。
计算机里,unicode 称呼为万国码,可以作为中间语言用于不同编码的软件进行交互。
把gpk 转成unicode,为编码encode,
gbk将unicode编码的代码转换成gbk能理解的,为解码decode
in python2
默认编码为ASCII编码,写中文的时候,必须先声明 -*-coding:utf8-*-
GBK 转换成UTF-8流程:
1 gbk 通过decode 成unicode编码.
2 unicoe 通过encode 成utf-8编码
in python3
所有文件的默认字符编码为unicode,所以在编码时可以直接编码成所需的编码类型,不需要先decode了
但是如果unicode 去转换成gbk,显示的就是bytes了,其实unicode默认就支持中文的,没什么非常的必要,不需转成gbk
encode 在编码的同时,会把数据转换成bytes类型
decode 在解码的同时,会把bytes转换成字符串类型
b =bytes 字节类型 一种数据类型,不同