常见的字符编码方式-文字编码和Unicode标准


附上常用编码方式的在线查看和相互转换工具链接   http://www.jb51.net/tools/zhuanhuan.htm
 
 
ASCII字符集 是美国制订的标准,针对北美用户开发。它使用7个二进制位编码,可以表示128个字符。局限性:字符空间有限。  各国针对本国文字设计编码集,如简体中文的GB系列编码。
 
为了一劳永逸地解决各国文字间的统一,业界许多大公司和组织联合提出了一个标准,这就是Unicode。 它对字符集中的每个字符用两个字节长的ID号进行编码,从而规定出一个可容纳多达65536个字符的编码空间,并且将现今国际上各国编码中的常用字尽数收入罄中。
但是,Unicode在推广过程中却遭到了首先是欧美用户的反对。他们反对的理由非常简单:欧美用户原本使用的编码都是单字节长的,双字节的Unicode处理引擎无法处理原本的单字节数据;而如果要把现有的单字节文本全部转换成Unicode,工作量就太大了。
 
于是在各方磋商之下,一个Unicode的变种版本产生了,这就是UTF-8。UTF-8是一个多字节的编码体系,它的编码规则如下:
 
1、UTF-8编码分为四个区:
    一区为单字节编码,
      编码格式为:0xxxxxxx;
      对应Unicode:0x0000 - 0x007f
    二区为双字节编码,
      编码格式为:110xxxxx 10xxxxxx;
      对应Unicode:0x0080 - 0x07ff
    三区为三字节编码,
      编码格式为:1110xxxx 10xxxxxxx 10xxxxxx
      对应Unicode:0x0800 - 0xffff
    四区为四字节编码,
      编码格式为:11110xxx 10xxxxxxx 10xxxxxx 10xxxxxx
      对应Unicode:0x00010000 - 0x0001ffff
    五区为五字节编码,
      编码格式为:111110xx 10xxxxxxx 10xxxxxxx 10xxxxxxx 10xxxxxxx
      对应Unicode:0x00200000 - 0x03ffffff
    六区为六字节编码,
      编码格式为:111110x 10xxxxxxx 10xxxxxxx 10xxxxxxx 10xxxxxxx 10xxxxxxx
      对应Unicode:0x04000000 - 0x7fffffff
 
按照UTF-8编码规则我们不难发现,其一区的128个编码实际上就是ASCII编码。所以UTF-8的处理引擎可以直接处理ASCII文本。但是,UTF-8对ASCII编码的兼容是以牺牲其它编码为代价的。比如,原本中、日、韩三国文字基本上都是双字节编码,但它们在Unicode编码中的位置对应到UTF-8中的三区,每一个字符编码要三个字节长。换句话说,如果我们把所有现有的中、日、韩三国编码的非ASCII字符文本数据转换成UTF-8编码,则其大小都会变成原来的1.5倍。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM