目录
一:编码简介
1、ASCII码占用字节数
ASCII编码中的字符每一个占用8bits,一个字节
2、GB编码
中文初是使用ASCII码中的扩展位实现编码的,与中文扩展表实现一一对应的关系
以此为基础的编码有:
GB2312 1980年 6763字 682字符
GBK1.0 1995年 21003字
GB18030 2000年 27484字(包括藏文等少数民族语言)
中国要求PC系统必须支持GB18030,嵌入式硬件不作要求
3、编码进一步发展
为了整合各个国家的映射,出现了国码:
Unicode,其中包括:
unicode: utf-32:一个字符占4bytes
unicode: utf-16:所有的占2bytes或大于2bytes
unicode: utf-8 英文等ASCII码表中的占一个字节,中文占3bytes,欧文占2bytes
统称的unicode是向下兼容GB的,因此使用unicode编码的文件在GB编码的终端中可以正常显示中文
但是utf-8由于重新改变编码数据结构,因此并不兼容unicode,因此需要转码解码等操作。
4、Python中的编码规则,转码解码操作
(1)Python默认编码:
Python3.0 默认编码是unicode(也就是代码中的汉字以unicode进行存储)
Python2.0 默认编码是ASCII码
(2)2.0软件使用中文的方式:
#!coding:utf-8
用这个语句告诉Python以下编码按照utf-8进行编码
(3)Python编码解码语法简介
#!coding: utf-8
#解码
s = '赵’
s_to_unicode = s.decode('utf-8') #Python3.0 默认编码unicode
unicode_to_gbk = s_to_unicode.decode('gbk') #讲unicode编码为gbk
5、个人理解层面
编码需要清楚终端显示软件的显示编码规则,比如在cmd中,显示是gbk,这个编码规则对于汉字是支持的,而用unicode编码的程序也是可以在此显示的,所以如果Python软件指定编码为utf-8的话会将代码中的汉字按照另外一种形式进行编码,不会再支持unicode和gbk中的汉字编码,会导致在cmd中的汉字以乱码的形式进行显示
而Python中的编码方法,decode和encode是将内容按照制定的方式进行编码,中间转换的标准就是unicode