常⽤的字符集编码
ASCII
American Standard Code for Information Interchange,美国标准信息交换代码
主要⽤于显⽰现代英语和其他西欧语⾔。它是现今最通⽤的单字节编码系统,并等同于国际标准ISO 646。
ASCII 码使⽤指定的 7 位或 8 位⼆进制数组合来表⽰ 128 或 256 种可能的字符。标准 ASCII 码也叫基础ASCII码,使⽤ 7 位⼆进制数来表⽰所有的⼤写和⼩写字母,数字 0 到 9、标点符号,以及在美式英语中使⽤的特殊控制字符。其中:
  0~31及127(共33个)是控制字符或通信专⽤字符(其余为可显⽰字符),如控制符:LF(换⾏)、CR(回车)、FF(换页)、
DEL(删除)、BS(退格)、BEL(振铃)等;通信专⽤字符:SOH(⽂头)、EOT(⽂尾)、ACK(确认)等;ASCII值为 8、9、10 和13 分别转换为退格、制表、换⾏和回车字符。它们并没有特定的图形显⽰,但会依不同的应⽤程序,⽽对⽂本显⽰有不同的影响。
  32~126(共95个)是字符(32sp是空格),其中48~57为0到9⼗个阿拉伯数字;
  65~90为26个⼤写英⽂字母,97~122号为26个⼩写英⽂字母,其余为⼀些标点符号、运算符号等。
同时还要注意,在标准ASCII中,其最⾼位(b7)⽤作奇偶校验位。
后128个称为扩展ASCII码,⽬前许多基于x86的系统都⽀持使⽤扩展(或“⾼”)ASCII。扩展 ASCII 码允许将每个字符的第 8 位⽤于确定附加的 128 个特殊符号字符、外来语字母和图形符号。
GB2312
GB 2312或GB 2312-80是⼀个简体中⽂字符集的中国国家标准,全称为《信息交换⽤汉字编码字符集·基本集》,⼜称为GB0,由中国国家标准总局发布,1981年5⽉1⽇实施。GB2312编码通⾏于中国⼤陆;新加坡等地也采⽤此编码。中国⼤陆⼏乎所有的中⽂系统和国际化的软件都⽀持GB 2312。
GB 2312标准共收录6763个汉字,其中⼀级汉字3755个,⼆级汉字3008个;同时,GB 2312收录了包括拉丁字母、希腊字母、⽇⽂平假名及⽚假名字母、俄语西⾥尔字母在内的682个全⾓字符。
GB 2312的出现,基本满⾜了汉字的计算机处理需要,它所收录的汉字已经覆盖中国⼤陆99.75%的使⽤频率。
对于⼈名、古汉语等⽅⾯出现的罕⽤字,GB 2312不能处理,这导致了后来GBK及GB 18030汉字字符集的出现。
GBK
GBK是汉字编码标准之⼀,全称《汉字内码扩展规范》(GBK即“国标”、“扩展”汉语拼⾳的第⼀个字母,英⽂名称:Chinese Internal Code Specification),中华⼈民共和国全国信息技术标准化技术委员会1995年12⽉1⽇制订,国家技术监督局标准化司、电⼦⼯业部科技与质量监督司1995年12⽉15⽇联合以技监标函1995 229号⽂件的形式,将它确定为技术规范指导性⽂件。
GBK编码,是在GB2312-80标准基础上的内码扩展规范,使⽤了双字节编码⽅案,其编码范围从8140⾄FEFE(剔除xx7F),共23940个码位,共收录了21003个汉字,完全兼容GB2312-80标准,⽀持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中⽇韩汉字,并包含了BIG5编码中的所有汉字。
GBK 规范收录了 ISO 10646.1 中的全部 CJK 汉字和符号,并有所补充。
GBK 亦采⽤双字节表⽰,总体编码范围为 8140-FEFE,⾸字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F ⼀条线。总计 23940 个码位,共收⼊ 21886 个汉字和图形符号,其中汉字(包括部⾸和构件)21003 个,图形符号 883 个。
GB18030
国家标准GB18030-2005《信息技术中⽂编码字符集》是我国继GB2312-1980和GB13000.1-1993之后
最重要的汉字编码标准,是我国计算机系统必须遵循的基础性标准之⼀。 GB18030有两个版本:GB18030-2000和GB18030-2005。GB18030-2000是GBK的取代版本,它的主要特点是在GBK基础上增加了CJK统⼀汉字扩充A的汉字。GB18030-2005的主要特点是在GB18030-2000基础上增加了CJK统⼀汉字扩充B 的汉字。
GB 18030字符集标准解决汉字、⽇⽂假名、朝鲜语和中国少数民族⽂字组成的⼤字符集计算机编码问题。该标准的字符总编码空间超过150万个编码位,收录了27484个汉字,覆盖中⽂、⽇⽂、朝鲜语和中国少数民族⽂字。并且与Unicode 3.0版本兼容。
采⽤单字节、双字节和四字节三种⽅式对字符编码。
Unicode
Unicode(统⼀码、万国码、单⼀码)是⼀种在计算机上使⽤的字符编码。Unicode 是为了解决传统的字符编码⽅案的局限⽽产⽣的,它为每种语⾔中的每个字符设定了统⼀并且唯⼀的⼆进制编码,以满⾜跨语⾔、跨平台进⾏⽂本转换、处理的要求。1990年开始研发,1994年正式公布。
每⼀种语⾔的不同的编码页,增加了那些需要⽀持不同语⾔的软件的复杂度。因⽽⼈们制定了⼀个世界标准,叫做unicode。unicode为每个字符提供了唯⼀的特定数值,不论在什么平台上、不论在什么软件
中,也不论什么语⾔。也就是说,它世界上使⽤的所有字符都列出来,并给每⼀个字符⼀个唯⼀特定数值。
Unicode的最初⽬标,是⽤1个16位的编码来为超过65000字符提供映射。但这还不够,它不能覆盖全部历史上的⽂字,也不能解决传输的问题 (implantation head-ache's),尤其在那些基于⽹络的应⽤中。已有的软件必须做⼤量的⼯作来程序16位的数据。
因此,Unicode⽤⼀些基本的保留字符制定了三套编码⽅式。它们分别是UTF-8,UTF-16和UTF-32。正如名字所⽰,在UTF-8中,字符是以8位序列来编码的,⽤⼀个或⼏个字节来表⽰⼀个字符。这种⽅式的最⼤好处,是UTF-8保留了ASCII字符的编码做为它的⼀部分,例如,在 UTF-8和ASCII中,“A”的编码都是0x41.
UTF-16和UTF-32分别是Unicode的16位和32位编码⽅式。考虑到最初的⽬的,通常说的Unicode就是指UTF-16。在讨论Unicode时,搞清楚哪种编码⽅式⾮常重要。
数字转unicode编码UTF-8
8-bit Unicode Transformation Format
UTF-8是Unicode的其中⼀个使⽤⽅式。UTF-8使⽤可变长度字节来储存 Unicode字符,例如ASCII字母
继续使⽤1字节储存,重⾳⽂字、希腊字母或西⾥尔字母等使⽤2字节来储存,⽽常⽤的汉字就要使⽤3字节。辅助平⾯字符则使⽤4字节。
BIG5
⼤五码(Big5),⼜称为⼤五码或者五⼤码,是通⾏于台湾、⾹港地区的⼀个繁体字编码⽅案。地区标准号为:CNS11643,这就是⼈们讲的BIG-5码。1984年由台湾财团法⼈信息⼯业策进会和五间软件公司宏碁 (Acer)、神通 (MiTAC)、佳佳、零壹 (Zero One)、⼤众 (FIC)创⽴,故称⼤五码。
Big5字符集共收录13,053个中⽂字。
Big5码使⽤了双字节储存⽅法,第⼀个字节称为“⾼位字节”,第⼆个字节称为“低位字节”。
Big5的局限性,没有考虑社会上流通的⼈名、地名⽤字、⽅⾔⽤字、化学及⽣物科等⽤字,没有包含⽇⽂平假名及⽚假名字母。