《编码》电子书,编码宝典豆瓣
编码集
1. ASCII编码:
27个字母和8个数据位足够存储字母、数字和符号,最高支持0x7F。
2. GB2312编码
每个汉字占用2个字节(高位和低位)和16个数据。GB2312是ASCII的中文扩展,包含7000多个汉字。它是中国计算机发展后发展起来的一种代码。它检测高位和低位。如果同时大于0x7F,则认为是GB2312,否则认为是ASCII码。
相关:《Python视频教程》
3. GBK(1995)和GB18030(2005/2000)
每个汉字占用2个字节,GB2312因为汉字太多,不能满足需求。GBK包括了GB2312的全部内容,
同时新增汉字(包括繁体字)和符号近2万个。只要求高位大于0x7F,低位可以小于0x7F,就认为是中文。
国家标准GB18030-2000 《信息交换用汉字编码字符集基本集的补充》是我国继GB2312-1980和
继GB13000-1993之后最重要的汉字编码标准,囊括了我国多种少数民族语言,包括7万多个汉字。
4.Unicode编码
定长存储,把所有语言统一成一组编码集,一般用2个字节,有的有4个字节。这是一个完整的收藏。
分为17个面,2个字节为基本面,常用汉字在基本面,4个字节为其他16个面。
不兼容的ASCII码,即存储时在ASCII码前面加0,导致存储的数据变大。
. utf-8---变长存储
国际标准化组织(ISO)规定,英文字符应该使用一个字节,并且应该遵循原始的ASCII码。
1~4字节用于表示一个符号,3字节用于中文存储(ascii码内容用1字节保存欧洲字符用2字节保存东亚字符用3字节保存特殊符号用4字节保存)
Unicode是内存编码的表示方案(规范),utf-8是如何保存和传输Unicode的方案(实现)。
优点:虽然在内存中汇总的数据都是Unicode,但是当数据保存到磁盘或者用于网络传输时,utf-8会节省更多的流量和硬盘空间。
如何判断多少字节代表一个字符:
给每个字节加上标识位,其中高位标识位4位,低位标识位2位。判断高位字节开头有多少个1,就可以确定有多少个字节来表示一个字符。
. utf-8和Unicode对应关系
Utf-8去掉了标识位,变成了unicode。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。