各种编码规范以及发展史
一.【英文编码】
ASCII 编码:
用来为空格,标点,数字,大小写英文字母编码,8位,127个。称为半角字符。
扩展字符集:8位(128-255)加入某些特殊的形状,新字母和符号
2.【汉字编码】
以下的汉字编码被程序员们统称为:DBCS(Double Bytes Character Set)。 在此标准系中,最大的特点是:两个字节长的汉字字符和一个字节长的英文字符并存于同一套编码方案里,即一个汉字顶两个英文字符。
GB2312编码:(是对ASCII编码的中文扩展)取消了127位之后的编码,将两个大于127的字符连在一起,称为全角字符。包含了ASCII编码里本来的数字,字母,符号,都用两个字符表示。
GBK编码:(对GB312编码的中文扩展)不再要求低字节是127号之后的内码,只要第一个字节是大于127的就固定认为是一个汉字的开始。增加了新的汉字(包括繁体字)和符号。
GB18030编码:(对GBK编码的扩展)增加了少数民族的字。
ANSI编码,实际上就是GB系列的编码方式。
3.【ISO统一的编码】
UNICODE编码:可以组合65535unicode码和ascii码区别个不同的字符。废除了所有的地区性编码方案,包括了所有的文化,所有的字母和符号的编码。都是两个字节的,包括英文。对于原来的ASCII编码的字符保持原来的编码不变,只是将原来的8位扩展为16位,高8位永远是0。但是没有与现有的编码兼容,这使得GBK与UNICODE在汉字的内码编排上是完全不一样的,没有算法可以实现二者的转化,只能通过查表来实现。
4.【UTF标准】
UNICODE标准如何在网络上传输是一个问题,于是面向传输的众多的UTF(UCS Transfer Format)标准出现了。UTF8每次8个位传输数据,UTF16每次16个位。为了传输的可靠性,从UNICODED到UTF时并不是直接的对应,而是要过一些算法和规则来转换。(不同的计算机对高低字节发送的先后顺序不同。)
5.UNICODE到UTF8的转换规则
UNICODE | UTF8 |
0000 — 007F | 0XXXXXXX |
0080 — 07FF | 110XXXXX 10XXXXXX |
0800 — FFFF | 1110XXXX 10XXXXXX 10XXXXXX |
例如“汉”字的UNICODE编码是6C49。 6C49在 0800-FFFF之间,所以要用3个字节模版:1110XXXX 10XXXXXX 10XXXXXX。将6C49写成二进制是:0110 1100 0100 1001,将这个比特流按三字节模版的分段方法分为 0110 110001 001001,依次代替模版中的X,得到:1110-0110 10-110001 10-001001,即E6 B1 89,这就是其UTF8的编码。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论