一、GB2312
GB2312 也相当于ASCLL,只不过是适用于我们中国人
如:中国
以二进制存储为,D0 D6 FA B9(小端存储),两个字节一个中文
二、UNICODE编码
这是一个编码方案,说白了就是一张包含全世界所有文字的一个编码表,只要这个世界上存在的文字符号,统统给你一个唯一的编码:
Unicode编码范围是:0-0x10FFFF,可以容纳100多万个符号!
Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。
三、 UTF-16和UTF-8
为了解决UNICODE编码存储问题,而产生UTF-16和UTF-8
如:A中
在UTF-16中
2个字节为单位存储(2个字节存不下,就4个字节)
UTF-16存储没有问题,但是在网络中大部分传输都是以字母的形式传输,字母只占1个字节,这样传输太占空间,所以诞生了UTF-8
UTF-8:
Unicode编码(16进制) ║ UTF-8 字节流(二进制)
000000 - 00007F ║ 0xxxxxxx
000080 - 0007FF ║ 110xxxxx 10xxxxxx
000800 - 00FFFF ║ 1110xxxx 10xxxxxx 10xxxxxx
010000 - 10FFFF ║ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
A中
E4 B8 AD
1110 0100 1011 1000 1010 1101
根据UTF-8的规则
1110 (0100) 10(11 1000) 10(10 1101)
0100 1110 0010 1101
4E 2D
文件解析格式:
UTF-8 ║ EF BB BF
UTF-16LE ║ FF FE
UTF-16BE ║ FE FF