汉字有多少个?
汉字标准共有 6763 个, 其中一级 3755, 二级 3008, 还有 682 非汉字字符。ASCII一个字节表示字母(但是只用七位,最高为为0),但是汉字太多,需要两个字节区位码和国标码的换算关系是:
区码和位码分别加上十进制数 32 。如“国”字在表中的 25 行 90 列,其区位码为 2590 ,国标码是 397AH 。
上述引出交换码: 为了避开 ASCII 码中的控制码(00H-1FH),区位码的区号和位号都加上 020H(十进制:32)方便兼容ASCII.
再思考一下,7位范围是128,而汉字表示只用94位,剩下的可以用来表示其他的.
上述编码是考虑加入中文,但是如何将世界上所有的语言全部加入?因此有了Unicde编码.
目的:将世界上所有字符编码到一起并编号
包含字符集和对应的编码规则
主要有两种形式, UCS-2 : 16位, UCS-4: 32位,但是UCS-4太大了(32位),
可随着互联网发展,又必须有一个这样的统一编码.于是,出现了utf-8.UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。
它可以用一至四个字节对Unicode字符集中的所有有效编码点进行编码,属于Unicode标准的一部分.
换句话说,就是utf-8将UCS-4字符集的码位划分成四个区间,划分格式如下:
左边为对应划分区间,右边为对应区间需要加的前缀码.
举例子,将"王"在UCS-4字符集里面的码位转换成utf-8编码,如图:
Big Endian: 判别一个数的正负很容易,只要取offset0处的一个字节就能确认。
Little Endian: 长度为1,2,4字节的数,排列方式都是一样的,数据类型转换非常方便。
1 . wiki/UTF-8 2 . 李正华老师pdf 3 . B站视频-非常详细的字符编码讲解 4. wiki字节序