1.ASCII

一共规定了128个字符的编码(一个字节8个为,也就是一个字节可以呈现出256种不同的状态),这128个字符,只占用了一个字节的后七位,最前面的一位统一规定为0(所能表示的符号有限)

2.GB2312简体中文的常见编码方式

GB2312是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。区位码一般 用10进制数来表示,如1601就表示16区1位,对应的字符是“啊”。在区位码的区号和位号上分别加上0xA0就得到了GB2312编码。

3.Unicode 所有符号的编码

Unicode当然是一个很大的集合,现在的规模可以容纳下100多万个符号。每个符号的编码都不一样
注意:Unicode只是一个符号集,规定了符号的二进制代码,但是确没有规定二进制代码应该如何存储。

区别Unicode和ASCII

1)ASCII编码是1个字节,而Unicode编码通常是2个字节,举例如下。

字母 A 用ASCII编码是十进制的65,二进制的01000001;

字符 0 用ASCII编码是十进制的48,二进制的00110000,注意字符 ‘0’ 和整数 0 是不同的;

汉字 中 已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。

如果把ASCII编码的 A 用Unicode编码,只需要在前面补0就可以,因此, A 的Unicode编码是00000000 01000001。

4.UTF-8 (UTF-8是Unicode的实现方式之一)

UTF-8是为了满足Unicode对存储空间造成的浪费,而出现的“可变长编码”的UTF-8编码
UTF-8的编码格式

1110XXXX 10XXXXXX 10XXXXXX

当有字符需要填充时,从字符的最后个二进制位开始,从后先前填入格式中的X

Unicode、ASCII、UTF-8的区别

相关文章: