Unicode编码

除了“ascii”编码的那些外,还有很多的字符没能在终端显示出来。所以他们继续把127号以后的进行编码,从128一直编到了255,这些又称为“扩展字符”。

但是,当计算机进入中国后,由于我们的汉子博大精深,那区区的一两百个状态怎么够啊,所以我们当然也开始了自己的编码指定。因为最开始的考虑不周,如没有考虑到少数名族语言之类的。单汉字编码就有了好几种。“GB2312”:127号之前的字符保持不变,直接废掉了127之后的那些扩展字符,约定两个127号之后的子节组合在一起编码成一个汉字,前面一个字节称为高子节,后面一个字节称为低字节,都是127号之后的子节。“GBK”:前127号保持不变,不再要求两个字节都是127号之后的子节了,只要第一个字节,也就是高子节,是127号之后的子节就行,第二个字节(低字节)不管是不是127号之后的子节都可以。“GB18030”:对“GBK”又进行了扩展,增加了更多的字符表示。这一系列的中文编码又总称位“DBCS“。

单中文就出现了这么多的编码格式,在世界范围内来看,其他的国家的情况也差不多。这些各种各样的编码都是你认你的我认我的,根本都没有一个统一的共识,这样的编码信息就无法实现信息的传输和共享了,得,要想认别国的字符,那你得装一套别国的编码系统。在这样的情况下,国际标准化组织(iso)就开始着手解决这个问题了,他们废除了国家地区性的编码,统一制定了一个编码格式,”Universal Multiple-Octet Coded Character Set”,简称UCS, 俗称 “unicode“。

unicode有两种格式,UCS2和UCS4,它们采用定长编码,UCS2指定2个字节编码一个字符,UCS4指定4个字节编码一个字符,在这样的约定下,所有国家的字符都采用这样的约定格式来进行重新编码,原有的ascii保持编码格式不变,只是将它扩展成了2个字节或者是4个字节。当然,你可能也发现了,这样的编码指定也存在一些问题,UCS2根本就不能编码出所有的字符,UCS4却可能是文本的长度成倍的增加,因为一些字符本可以用一个字节或者是两个字节就可以编码的。所以基于这样一些原因,而且随着互联网的出现,就有了后来的 UTF-8,UTF-16,UTF-32,它们都是Unicode编码格式的具体实现方式。UTF-8和UTF-16采用变长的编码方式,utf-8约定可以用1-4个字节来表示一个字符,utf-16可以用2个或者是4个字节来编码一个字符。utf-16可以说是ucs2的扩展,而utf-32和ucs4基本相同。

你可能感兴趣的:(Unicode编码)