当我们使用Windows记事本的“另存为”,可以在GBK、Unicode、
Unicode    b ig    e ndian和UTF-­‐8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?
同样一份txt文件,Unicode、Unicode    b ig    e ndian和UTF-­‐8编码的txt文件的大
小都不一样,二进制文件开头会多出几个字节,分别是FF、    FE(Unicode),FE、FF(Unicode    b ig    e ndian),EF、BB、BF(UTF-­‐8)。但这些标记是基于什么标
准呢?
本文主要介绍一下目前常用的汉字编码方案,从而使读者看完后能对于汉字编
码有基本的认识。
1.GB2312字符集
GB2312是1980年国家制定的汉字内码规范。GB是国标的汉语拼音首字母。
该字符集收录了收入汉字6763个,符号715个,总计7478个字符,通常所说的一、二级汉字库就全部包
含在GB2312中。楷体-­‐GB2312、仿宋-­‐
GB2312、华文行楷等市面上绝大多数字体支持显示这个字符集,亦是大多数输入法所采用的字符集。
GB2312将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。故而GB2312最多能表示6763个汉字。
虽然GB2312包含了绝大部分的常用简体汉字,但是由于中文的复杂性,所以GB2312目前已经越来越不能适应需要了,特别是因为人名、地名中包含的很多字GB2312中都没有,如的‘镕’字,GB2312中就没有包含,这样导致很多混乱。
2.Big5字符集
Big5中文名“大五码”,是繁体字常用的字符集,共收入13060个繁体汉字,808个符号,总计13868个字符,普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体等港台大多数字体支持这个字符集的显示。
1983年10月,科学委员会、教育部国语推行委员会、中央标准局、行政院共同制定了《通用汉字标准交换码》,后经修订于1992年5月公布,更名为《中文标准交换码》,BIG5是台湾资讯工业
策进会根据以上标准制定的编码方案。虽然Big5存在一些瑕疵,但广泛应用于电脑行业,尤其是互联网中,从而成为一种事实上的行业标准。
BIG5码是双字节编码方案,其中第一个字节的值在OXAO-OXFE之间,第二个字节在OX40-OX7E和OXA1-OXFE之间。
BIG5收录13461个汉字和符号,包括:
*符号408个,编码位置A140-A3BE
*常用字5401个,编码位置A440-C67E,包括台湾教育部颁布的《常用国字标准字体表》的全部汉字4808个,台湾教科书常用字587个,异体字6个。
*次常用字7652个,编码位置C940-F9D5,包括台湾教育部颁布的《次常用国字标准字体表》的全部汉字6341个,《罕用国字标准字体表》中使用频率较高的字1311个。
3.GBK字符集
GB2312-80仅收汉字6763个,这大大少于现有汉字,随着时间推移及汉字文化的不断延伸推广,有些原来很少用的字,现在变成了常用字。因此全国信息技术化技术委员会于1995年12月1日《汉字内码扩展规范》。
GBK向下与GB2312    完全兼容,包含Big-­‐5的繁体字(但是不兼容Big-­‐5字符集编码)。unicode汉字
GBK共收入21886个汉字和图形符号,包括:
*    G B2312中的全部汉字、非汉字符号。
*    B IG5中的全部汉字。
*    与ISO-10646相应的国家标准GB13000中的其它CJK汉字
(以上合计20902个汉字)
*    其它汉字、部首、符号,共计984个。
微软公司自Windows95简体中文版开始支持GBK代码,但目前的多数搜索引擎都不能很好地支持GBK汉字。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-­‐SB)、Arial    U nicode    M S、MingLiU、PMingLiU等字体支持显示这个字符集。微软拼音输入法2003、全拼、紫光拼音等输入法,能够录入GBK简繁体汉字。
4.Unicode字符集
很多传统的编码方式都有一个共同的问题,即容许电脑处理双语环境(通常使用拉丁字母以及其本地语言),但却无法同时支持多语言环境。例如ISO    8859所定义的字符虽然在不同的国家中广泛地使用,可是在不同国家间却经常出现不兼容的情况。因此产生了Unicode    ,    它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。Unicode的学名“Universal    M ultiple-­‐Octet    C oded    C haracter    S et”,简称为UCS。UCS可以看作    是
"Unicode    C haracter    S et"的缩写。历史上存在两个试图独立设计Unicode的
组织,即国际标准化组织(ISO)和一个软件制造商的协会()。
ISO开发了ISO    10646项目,Unicode协会开发了Unicode项目。
在1991年前后,双方都认识到世界不需要两个不兼容的字符集。于是它们开始合并双方的工作成果,并为创立一个单一编码表而协同工作。从
Unicode2.0开始,Unicode项目采用了与ISO    10646-­‐1相同的字库和字码。
目前两个项目仍都存在,并独立地公布各自的标准。Unicode协会现在的最新版本是2005年的Unicode    4.1.0。ISO的最新标准是ISO    10646-­‐3:2003。
5.UTF-­‐8、UTF-­‐16等编码方式
UCS只是规定如何编码,并没有规定如何传输、保存这个编码。例如“汉”字的UCS编码是6C49,我可以用4个ascii数字来传输、保存这个编码;也    可以用utf-­‐8编码:3个连续的字节E6    B1    89来表示它。关键在于通信双方都要认可。UTF-­‐8、UTF-­‐7、UTF-­‐16都是被广泛接受的方    案。UTF-­‐8的一个特别的好处是它与ISO-­‐8859-­‐1完全兼容。UTF是“UCS    T ransformation    F ormat”
的缩写。
简单来说,unicode,gbk和大五码就是编码的值,而utf-­‐8,uft-­‐16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉    字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设
uncode为a040,gbk为b030,而uft-­‐8码,就是把    那个值表现的形
式.utf-­‐8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转utf-­‐8就可以了.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。