编码机

字符编码详细介绍

发布时间:2022/11/13 20:29:23   

ASCII编码

ASCII占用8位(bit)。8个bit可以表示个字符。

ASCII码只规定了个字符的编码。

ASCII码的问题是字符太少,不能满足世界各国的需要。所以各国其他编码利用剩余的个字符定义各自不同的编码。

GBGBK

汉字GB使用两个字节(16位),最多表示个字符。

一个小于的字符的意义与原来相同,但两个大于的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到0xF7,后面一个字节(低字节)从0xA1到0xFEgb中两个字符组成的编码的字符叫做“全角”字符,而原来在号以下的那些就叫”半角”字符了

对GB扩展就得到了GBK,再扩展得到GB(少数民族文字)。

所以,一个字节小于的编码都按照ASCII码查,大于的字节+之后的字节(一共两个字节16位)组成汉字的编码。

所以,“一个汉字两个英文字符”就是这么来的。

Unicode

为了统一一种编码,Unicode出现了。

Unicode目前规划的总空间是17个平面(平面0至16),0x至0x10FFFF。最前面的个字符位,称为基本平面(缩写BMP)。每个平面有个码点。

Unicode只规定了每个字符的码点,到底用什么样的字节序表示这个码点,就涉及到编码方法。

最直观的编码方案就是UTF-32

UTF-32

由于Unicode是0x至0x10FFFF,直接用定长的4个字节来表示对应的字符

U+=0xU+D=0xD这样好处是直观,但是太浪费空间了。

UTF-8

UTF-8是一种变长的编码,从1字节到4字节。

英文字母为1个字节,汉字为3个字节。

Unicode符号范围

UTF-8编码方式

(十六进制)

(二进制)

—————————————————————–

-007F

0xxxxxxx

0080-07FF

xxxxx10xxxxxx

0800-FFFF

1xxxx10xxxxxx10xxxxxx

0001-FFFF

11xxx10xxxxxx10xxxxxx10xxxxxx

Reference字符编码的演变

中国人民通过对ASCII编码的中文扩充改造,产生了GB编码,可以表示多个常用汉字。汉字实在是太多了,包括繁体和各种字符,于是产生了GBK编码,它包括了GB中的编码,同时扩充了很多。中国是个多民族国家,各个民族几乎都有自己独立的语言系统,为了表示那些字符,继续把GBK编码扩充为GB编码。每个国家都像中国一样,把自己的语言编码,于是出现了各种各样的编码,如果你不安装相应的编码,就无法解释相应编码想表达的内容。终于,有个叫ISO的组织看不下去了。他们一起创造了一种编码UNICODE,这种编码非常大,大到可以容纳世界上任何一个文字和标志。所以只要电脑上有UNICODE这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成UNICODE编码就可以被其他电脑正常解释。UNICODE在网络传输中,出现了两个标准UTF-8和UTF-16,分别每次传输8个位和16个位。于是就会有人产生疑问,UTF-8既然能保存那么多文字、符号,为什么国内还有这么多使用GBK等编码的人?因为UTF-8等编码体积比较大,占电脑空间比较多,如果面向的使用人群绝大部分都是中国人,用GBK等编码也可以。



转载请注明:http://www.aideyishus.com/lkzp/2302.html
------分隔线----------------------------