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