什么是字符编码
将字符集(acsii字符集或unicode字符集)“翻译”成字节序列的规则就是字符编码,简称编码。
简单理解成:人与计算机交流,字符"我"人都认识,但是计算机只能认识010101010,通过编码就能进行愉快交流了
ASCII
- ASCII(American Standard Code for Information Interchange,美国标准信息交换代码),其最多只能用 8 位来表示(一个字节),ASCII码最多只能表示 255 个符号
- ASCII是一个字符集,也是一种编码方式
Unicode
- 由于ascii只能表示英文相关字符,各个国家编码不兼容,所以出现了unicode。
- Unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。
- Unicode 只是一个符号集,它只规定了符号的二进制代码(映射关系),却没有规定这个二进制代码应该如何存储,如何存储就要看编码方式
- ”unicode编码“ 这个词应该是指windows的utf-16
两者区别:ascii是一种编码方式,而unicode不是
关于中文
- GB2312编码方案于1980年发布,收录汉字6763个,采用双字节编码。
- GBK编码方案于1995年发布,收录汉字21003个,采用双字节编码。
- GB18030编码方案于2000年发布第一版,收录汉字27533个;2005年发布第二版,收录汉字70000余个,以及多种少数民族文字。GB18030采用单字节、双字节、四字节分段编码。
UTF-xxx
- UTF-8 UTF-16 UTF-32,是unicode的编码方式,将unicode字符集映射关系(数字)按UTF-8等编码方式,转换成字节序列(以什么方式存储就看编码方式了)
- UTF-8是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。
python中的编码
python2.x→ascii 默认编码
python3.x→Unicode 默认编码
来源: