一、ASCII
- 由于美国日常使用中只有字母和数字,还有一些控制字符。
 - 一个字节8位,8位可以表示256种字符。因此用一个字节就可以很好满足美国使用要求。
 - ASCII码一共规定了128个字符,比如SPACE是32,A是65,这128个符号只咱用了一个字节的后面七位,最前面的一位统一规定为0。
 
Bin(二进制)    Oct(八进制)     Dec(十进制)  Hex(十六进制)  缩写/字符     解释
00000000     0       0      00    NUL(null)    空字符
00000001     1       1      01 SOH(start of headline) 标题开始
00000010     2       2      02  STX (start of text)  正文开始
00110000     60      48      30      0      数字0
00110001     61      49      31      1      数字1
00110010     62      50      32      2      数字2
01000001     101     65      41      A    大写字母A 
01000010     102     66      42      B    大写字母B
01000011     103     67      43      C    大写字母C
二、gb2312和GBK
- 兼容ascii
 - 第一个字节的最高位为1
 - 由于一个字节已经无法满足数量的要求了。所以采用两个字节来表示汉字。
 - 第一个字节称为“高位字节”(也称“区字节)”,第二个字节称为“低位字节”(也称“位字节”)
 - 区位码=区字节+位字节。例如“啊”字在大多数程序中,会以两个字节,0xB0(第一个字节) 0xA1(第二个字节)储存。
 
三、Unicode
- 
Unicode又称统一码、万国码。
 - 
在表示一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符。
 - 
Unicode为了包含所有文字,使用更多位的字节的表示。
 
四、utf-8
- utf-8是Unicode的一种实现方式。
 - 实际情况使用变字节的来表示文字。
 - 使用1~4个字节表示一个字符,根据不同的字符而变化字节长度,当字符在ASCII 码的范围时,就用一个字节表示,而一个中文字符占3个字节。
 - 对于单字节的符号,字节的第一位设为0,后面的7位为这个符号的Unicode码。因此,对于英文字母,UTF8编码和ASCII编码是相同的。
 - 对于非单字节(假设字节长度为N)的符号,第一个字节的前N位都设为1,第N+1设为0,后面字节的前两位一律设为10,剩下的没有提及的二进制,全部为这个符号的Unicode码。
 
Unicode符号范围     |        UTF-8编码方式
(十六进制)        |              (二进制)
----------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
- 举个例子,
 - 以汉字“严”为例,它的Unicode是4e25(100 1110 0010 0101),
 - 对应上表,处于第三行,因此严的UTF8编码需要3个字节。
 - 然后,从严的最后一个二进制位开始,从后向前填入X,多出的位补0,
 - 就可以计算出 1110 0100 1011 1000 1010 0101,转成十六进制就是E4B8A5。