一文带你了解编码集

编码集
1. ASCII编码:
127个字母 支持0x7F的8个数据位足以存储字母、数字和符号。

2. GB2312编码
每个汉字占据2个字节(高和低)和16个数据。GB2312是ASCII的中文扩展,包括7000多个汉字。它是计算机发展到中国后发展起来的编码。它检测到高和低。如果同时大于0x7F,则视为GB2312,否则视为ASCII编码。
相关推荐:Python视频教程
3. GBK(1995)和GB18030(2005/2000)
由于汉字数量过多,GB2312无法满足需求,每个汉字占据两个字节。GBK包括GB2312的所有内容,
增加了近2万个新汉字(包括繁体)和符号 。中文只要求高位大于0x7F,低位可以小于0x7F。
> 继GB2312-1980之后,国家标准GB18030-2000“信息交换用汉字编码字符集基本集的补充”
GB13000-1993之后最重要的汉字编码标准,包括中国多种少数民族文字,其中收入超过7万个。
4.Unicode编码
> 定长存储, 将所有语言统一到一套编码集中,通常使用2个字节,有些是4个字节。它被完整地包含在内。
分为17个面,基本面采用2个字节,普通中文子也在基本面,另外16个面为4个字节。
不兼容ASCII码,即存储时,在ASCII码前补0,导致存储数据增加。
5. utf-8---变长存储
> 国际标准组织(ISO)使用一个字节制作英文字符,遵循原始ASCII码。
> 用1~4个字节表示一个符号,用3个字节存储中文(ascii码中的内容用1个字节保存,用2个字节保存欧洲字符,用3个字节保存东亚字符,用4个字节保存特殊符号)
> Unicode是内存代码表示方案(规范),Utf-8是如何保存和传输Unicode方案(实现)的
> 优点:虽然内存总结的数据是Unicode,但当数据保存到磁盘或用于网络传输时,UTF-8将节省更多的流量和硬盘空间。
如何判断几个字节表示一个字符:
每个字节添加识别位置,其中高识别位置为4位,低识别位置为2位。判断高字节开头有多少个1,可以确定有多少个字节来表示一个字符。
6. utf-8与Unicode对应关系
utf-去掉识别位,变成unicode。
