主要内容转摘自:(1-6)http://gjican.iteye.com/blog/1028003,
(7) https://www.zhihu.com/question/20650946
1 ascii -:0~127
2 gb2312 ,使用2字节表, 可以包括7千多个常用简体汉字
高字节 低字节
161-247(86) 161-254(93),
3 GBK 18030 对GB2312 进行了扩展, 凡是低字节的值大于127,都认为是汉字, 于是包括了中国所有民族的文字, 很牛B的样子. 共有2万多个字符
4 UNICODE 将全世界所有语言进行统一编码,每个字符2个节,汉字在这里面是一个字符!
但是,UNICODE 在制订时没有考虑与任何一种现有的编码方案保持兼容,这使得 GBK 与UNICODE 在汉字的内码编排上完全是不一样的,没有一种简单的算术方法可以把文本内容从UNICODE编码和另一种编码进行转换,这种转换必须通过查表来进行。
ISO已经准备 了UCS-4方案,说简单了就是四个字节来表示一个字符
5 UNICODE到UTF8的转换规则
Unicode UTF-8
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
6 传输及显示
为了在不同的计算机上经过传输显示汉字, 需要根据程序编码进行相应转换
-- 程序编码使用gb2312, 需要经过gb2312->unicode->utf-8()-unicode->gb2312,。
--程序编码使用unicode,只需转换为utf-8再传输即可。 即unicode->utf-8()-unicode。
7 关于字符集(character set)和编码(encoding)
--对于 ASCII、GB 2312、Big5、GBK、GB 18030 之类的遗留方案来说,基本上一个字符集方案只使用一种编码方案
--比如 ASCII 这部标准本身就直接规定了字符和字符编码的方式,所以既是字符集又是编码方案;
所以,对 Unicode 方案来说,同样的基于 Unicode 字符集的文本可以用多种编码来存储、传输。
所以,用「Unicode」来称呼一个编码方案不合适,并且误导。