编码字符集标准及分类研究_谢谦
常用字符集编码详解:ASCII 、GB2312、GBK、GB18030、...

ASCIIASCII码是7位编码,编码范围是0x00-0x7F。
ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。
其中0x00-0x20和0x7F共33个控制字符。
只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。
HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。
早期很多邮件系统也只支持ASCII编码,为了传输中文邮件必须使用BASE64或者其他编码方式。
GB2312GB2312是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。
区位码一般用10进制数来表示,如1601就表示16区1位,对应的字符是“啊”。
在区位码的区号和位号上分别加上0xA0就得到了GB2312编码。
区位码中01-09区是符号、数字区,16-87区是汉字区,10-15和88-94是未定义的空白区。
它将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。
一级汉字是按照拼音排序的,这个就可以得到某个拼音在一级汉字区位中的范围,很多根据汉字可以得到拼音的程序就是根据这个原理编写的。
GB2312字符集中除常用简体汉字字符外还包括希腊字母、日文平假名及片假名字母、俄语西里尔字母等字符,未收录繁体中文汉字和一些生僻字。
可以用繁体汉字测试某些系统是不是只支持GB2312编码。
GB2312的编码范围是0xA1A1-0x7E7E,去掉未定义的区域之后可以理解为实际编码范围是0xA1A1-0xF7FE。
EUC-CN可以理解为GB2312的别名,和GB2312完全相同。
区位码更应该认为是字符集的定义,定义了所收录的字符和字符位置,而GB2312及EUC-CN是实际计算机环境中支持这种字符集的编码。
HZ和ISO- 2022-CN是对应区位码字符集的另外两种编码,都是用7位编码空间来支持汉字。
汉字编码字符集

汉字编码字符集汉字编码字符集是指用于表示和存储汉字的一套编码系统。
在计算机领域,为了能够准确地表示和处理汉字,人们设计了多种不同的汉字编码字符集。
本文将介绍几种常见的汉字编码字符集,包括GB2312、GBK、Unicode以及UTF-8。
一、GB2312GB2312是中国国家标准局于1980年发布的一种汉字编码字符集,是最早被广泛使用的汉字字符集之一。
GB2312字符集包含了7445个汉字和682个非汉字字符,采用双字节表示每个字符。
其中,第一个字节的范围是0xB0至0xF7,第二个字节的范围是0xA1至0xFE。
GB2312字符集主要适用于简体中文。
二、GBK随着计算机技术的发展和汉字数量的增加,GB2312字符集的容量已经无法满足需求。
为了解决这个问题,国家标准局于1995年发布了GBK字符集,它是对GB2312字符集的扩充和改进。
GBK字符集兼容GB2312字符集,同时加入了21003个汉字,总计包含了21886个汉字。
GBK字符集同样采用双字节表示每个字符,第一个字节的范围是0x81至0xFE,第二个字节的范围是0x40至0xFE。
GBK字符集支持简体中文和繁体中文。
三、UnicodeUnicode是一种国际标准字符集,旨在为全球所有字符提供唯一的编码。
Unicode采用16位的编码方案,可以支持最多65536个不同的字符。
不仅包括了各个国家语言的文字,还包括了数学符号、技术符号、图形符号等。
Unicode字符集为各种语言的文字提供了一个统一的编码标准。
四、UTF-8UTF-8是一种可变长度的Unicode编码方案,更好地解决了存储效率和兼容性的问题。
UTF-8使用1至4个字节来表示一个字符,根据不同的字符而变化。
对于单字节的字符,编码和ASCII码相同,兼容ASCII码。
对于多字节的字符,第一个字节的高位标识了字节数。
UTF-8字符集可以表示Unicode字符集中的所有字符。
在计算机系统中,为了使不同的系统能够正确地处理汉字编码,一般需要统一选择一种字符集来使用。
国家标准《信息技术汉字编码字符集(基本集)-全国信息技术标准化

1.工作简况
随着信息技术的不断发展,中文信息技术产品所使用硬件设备得到提升,中文信息系统及办公自动化设备对点阵字型出现了新的需求,为了满足中文信息系统对64点阵宋体的需求,根据工业和信息化部“2012年电子行业标准项目计划”的安排,对SJ 11242.1-2001进行修订,项目计划代号为2012-0526Q-SJ,标准名称为《信息技术通用多八位编码字符集(I区)汉字64点阵字型第1部分:宋体》。
本标准由中国电子技术标准化研究院,北京仓颉博雅信息技术有限公司等单位负责修订,标准主要起草人有代红、熊涛等。
根据上级主管部门下达的标准计划任务,由中国电子技术标准化研究院牵头成立了标准编制组和专家组,并制定了详细的标准研究实施方案。中国电子技术标准化研究院主要负责组织协调和标准文本起草,北京仓颉博雅信息技术有限公司负责字型设计,专家组负责字型审查工作。
为适应中文信息处理的发展和国际信息交换及汉字的规范化、标准化需求,在研制汉字字型的过程中,考虑到本标准的使用范围、时间和影响等因素,重点做了以下几个方面的工作:
(1)字形的正确性
常用字以《现代汉语常用字表》和《简化字总表》为依据容易确定,而超出规范字表的一些字在不同的字典里列出的字形不一致,因此,在字形整理时,不仅根据整理汉字字形的规则,还参考已有的标准及《康熙字典》、《汉语大字典》、《中华字海》等工具书,本着不放过任何一个疑问的原则,经过专家组的反复逐字审查讨论确定。
准确:字的笔划规范、偏旁规范、字形规范。
清楚:黑白适中、笔划清晰。
美观:字的结构要端正、大小匀称、组合比例协调,充分体现我国传统汉字各种字体的独特风格,做到“神、形”兼顾。
编码字符集标准及分类研究

Absr c Co d c a a trs tsa d r e t e b s s o h o u e e tif r to o e sng I hs p p r,a3一 t a t: de h r ce e t n a d a h a e ft e c mp t rt x no ma in prc s i . n t i a e r t r esmo e s p o o e o d s i e t o e h a tr st Th x si g c de sa d r e r ve d a d s m ma upl d li r p s d t e c b he c d d c a ce e . r e e itn o t n a dsa e iwe r n u —
中 图 分 类 号 :P 9 T 3l 文献标识码 : A
Re e r h o de s a c n Co d Cha a t r S t S a da d n a sfc to r c e e t n r s a d Cl s i a i n i
XE Qa R I i .u . i I i 一. U a w WU J n n Jn a
o ln n y i fUCS Afe v u tn u r n l sfc to t o so o e h a t rs tsa a ds e me h utie a a sso l . tre a ai g c re tca i ain meh l s i d fc d d c a ce e tnd r r ,a n w t — o i r d e t p iai n i aa o ui xitn t d d . W e co e o a e t ie pl to n c t g ng e sig sa a s c l n r ls urp p rwih a br fa l ss o mp — n t tChie e n to a t d r s o n h a t rs t n a n s ai n sa a d n Ha c a ce e . l n r Ke y wor ds: o c mpu e pp iai Ch n s n o ain p o e sn c e h a trs t tr a lc t on; i e e i r to r c s ig; o d c a ce e f m d r
常用字符集编码详解:ASCII、GB2312、GBK、GB18030、...

ASCIIASCII 码是7位编码,编码范围是0x00-0x7F ASCII 字符集包括英文字母、 阿拉伯数字和标点符号等字符。
其中 0x00-0x20和0x7F 共33个控制字符。
只支持ASCI 码的系统会忽略每个字节的最高位,只认为低 7位是有效位。
HZ 字符编码就是早期为了在只支持 7位ASCII 系统中传输中文而设计的编码。
早期很多邮件系统也只支持ASCII 编码,为了传输中文邮件必须使用 BASE64或 者其他编码方式。
GB2312GB2312是基于区位码设计的,区位码把编码表分为 94个位,每个字符的区号和位号组合起来就是该汉字的区位码。
10进制数来表示,如 1601就表示 16区1 位,对应的字符是 区号和位号上分别加上0xA0就得到了 GB2312编码。
区位码中 01-09区是符号、数字区, 16-87区是汉字区,未定义的空白区。
它将收录的汉字分成两级:第一级是常用汉字计 3755 个,置于 16-55 区,按汉语拼音字母 /笔形顺序排 列;第二级汉字是次常用汉字计 3008 个,置于 56-87 区,按部首 /笔画顺序排 列。
一级汉字是按照拼音排序的,这个就可以得到某个拼音在一级汉字区位中 的范围,很多根据汉字可以得到拼音的程序就是根据这个原理编写的。
GB2312字符集中除常用简体汉字字符外还包括希腊字母、日文平假名及片 假名字母、俄语西里尔字母等字符,未收录繁体中文汉字和一些生僻字。
可以 用繁体汉字测试某些系统是不是只支持 GB2312编码。
GB2312的编码范围是0xA1-0x7E 去掉未定义的区域之后可以理解为实际 编码范围是 0xA1-0xF7FE 。
EUC-CN 可以理解为GB2312的别名,和GB2312完全相同。
区位码更应该认为是字符集的定义,定义了所收录的字符和字符位置,而 94个区,每个区对应 区位码一般用 “啊”。
在区位码的10-15和 88-94是GB2312及EUC-CN是实际计算机环境中支持这种字符集的编码。
几种常见字符集与字符编码

⼏种常见字符集与字符编码字符集的概念 字符(Character)是各种⽂字和符号的总称,包括各国家⽂字、标点符号、图形符号、数字等。
⽽字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。
常⽤字符集 ASCII字符集、GB2312字符集、GBK字符集、 USC-3字符集、Unicode字符集等。
字符编码的概念 字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某⼀对象(例如:⽐特模式、⾃然数序列、8位组或者电脉冲),以便⽂本在计算机中存储和通过通信⽹络的传递。
常⽤字符编码 ASCII编码、GB2312编码、GBK编码、UFT-8编码等字符编码。
注意:不要把字符集和字符编码两者弄混淆。
虽然他们有些同名,⽐如ASCII有字符集也有ASCII的字符编码,他们是两个不同的概念。
下⾯我们详细讲解⼏种常⽤的字符集和字符编码1 ASCII字符集和ASCII编码 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的⼀套电脑编码系统。
它主要⽤于显⽰现代英语,⽽其扩展版本EASCII则可以勉强显⽰其他西欧语⾔。
它是现今最通⽤的单字节编码系统(但是有被Unicode追上的迹象),并等同于国际标准ISO/IEC 646。
ASCII字符集:主要包括控制字符(回车键、退格、换⾏键等);可显⽰字符(英⽂⼤⼩写字符、阿拉伯数字和西⽂符号)。
ASCII编码:将ASCII字符集转换为计算机可以接受的数字系统的数的规则。
使⽤7位(bits)表⽰⼀个字符,共128字符;但是7位编码的字符集只能⽀持128个字符,为了表⽰更多的欧洲常⽤字符对ASCII进⾏了扩展,ASCII扩展字符集使⽤8位(bits)表⽰⼀个字符,共256字符。
ASCII的最⼤缺点是只能显⽰26个基本拉丁字母、阿拉伯数⽬字和英式标点符号,因此只能⽤于显⽰现代美国英语(⽽且在处理英语当中的外来词如naïve、café、élite等等时,所有重⾳符号都不得不去掉,即使这样做会违反拼写规则)。
汉字编码常用的字符集

汉字编码常用的字符集
1. GB2312,GB2312是中国国家标准简化汉字字符集,于1980年发布。
它包含了6763个常用汉字和682个非汉字字符,使用双字节编码,其中包括了简体中文的基本字符。
2. GBK,GBK是GB2312的扩展字符集,于1995年发布。
它兼容GB2312,并增加了近两万个汉字和符号。
GBK使用双字节编码,其中包括了简体中文的扩展字符。
3. GB18030,GB18030是中国国家标准的多字节字符集,于2000年发布。
它兼容GB2312和GBK,并增加了更多的汉字和字符,包括繁体中文和一些少数民族文字。
GB18030使用单字节、双字节和四字节编码。
4. Unicode,Unicode是国际标准字符集,旨在涵盖地球上所有的字符。
Unicode采用统一的编码方式,为每个字符分配唯一的编码值。
其中,汉字统一采用了CJK统一汉字扩展A(CJK Unified Ideographs Extension A)和CJK统一汉字扩展B(CJK Unified Ideographs Extension B)等多个扩展区。
5. UTF-8,UTF-8是一种可变长度的Unicode编码方式,它可以表示任意Unicode字符。
UTF-8使用1到4个字节来表示不同的字符,其中包括了汉字。
这些字符集在不同的环境下使用,常见的应用包括操作系统、编程语言、文本编辑器、网页浏览器等。
使用不同的字符集可以满足不同的需求,如支持不同语言的文字显示和输入。
[转]字符集、字符编码、XML中的中文编码
![[转]字符集、字符编码、XML中的中文编码](https://img.taocdn.com/s3/m/ba34c6cd5122aaea998fcc22bcd126fff7055dc4.png)
[转]字符集、字符编码、XML中的中⽂编码字符集、字符编码、XML中的中⽂编码作为程序员的你是不是对于ASCII 、UNICODE、GB2321、UTF-7、UTF-8等等不时出现在你⾯前的这些有着奇怪意义的词感到很讨厌呢,是不是总觉得好象明⽩⼀点⼜好象不是很明⽩它们真正的意义。
下⾯我就来讲讲这些东东。
⼀、字符集字符集是什么呢,计算机表⽰某种语⾔所需要的符号和⽂字。
它有很多种规范,例如ASCII、GB2312、BIG5、GB18030、UNICODE,它们就是⼀些符号的集合,这些符号的索引值与具体存储到计算中的值并不等同。
(A)ASCII:最初的⼀批程序员在表⽰某个字母时是随意的,造成很⼤的⿇烦,于是美国的标准化组织出台了(American Standard Code for Information Interchange, ASCII),它指定了⽤7或8位⼆进制数来表⽰,⽤⼋位⼆进制可以表⽰256个字符,前128个字符也叫标准ASCII 码,后另外的128个叫扩展ASCII码,在这个时代程序员很幸福,因为我们明确的知道'A'就是65,存储到计算中也是65,⼀切都没问题。
(B)代码页:可惜幸福时光很短暂的,很快⼈们发现这256个字符不太够⽤了,有很多国家使⽤了不太⼀样的字母,⽐如德语、法语,这些国家定义了⾃已的标准,他们⽤8位表⽰他们的语⾔所需字母。
于是我们就有了问题,因为计算机存储的总是⼆进制数据,那么⼀个值为65的byte是代表英⽂中的'A'呢还是别的语⾔的字母呢。
在过去那种节省每⼀个byte的思想指导下,没⼈会去考虑其它的⽅法,于是前辈们想到⽤代码页(code page)来解决这个问题。
只要告知数据是使⽤的何种代码页,然后就⽤这个值到这个代码页对应的256个字符集中去查找对应的字母就好了。
⾮常优秀的解决⽅案,如同⼀个真理。
(C)多字符语⾔:不过真理也是有范围的,计算机的发展⼀⽇千⾥,⽼问题的新版本⼜来了,我们如何⽤字符来表⽰汉字,要知道汉字实在是太多了,怪不得中国⼈⽐⽼外就是聪明,能记得住这么多⽅块字符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中 文 信 息 学 报第20卷第5期 J OURNAL OF CH I NESE I NF OR MATI O N P ROCESSI NG V ol.20N o.5文章编号:1003-0077(2006)05-0083-08编码字符集标准及分类研究谢 谦1,2,芮建武1,吴 健1(1.中国科学院软件研究所开放系统与中文信息处理中心,北京 100080;2.河南大学计算机与信息工程学院,河南开封 475001)摘要:编码字符集标准是计算机处理文字信息的基础,本文提出了编码字符集三元组抽象,对现有编码字符集标准进行了简单回顾和总结,深入剖析了影响巨大的ISO2022标准及其派生标准,对ISO2022编码机制应用于多语言环境的局限性进行了探讨,阐明了使用通用编码字符集UCS的必要性,并对其进行了分析。
探讨了现有编码分类方法存在的问题,引入了一种对编码字符集以及实现方法进行分类的新方法,使用该方法对现有标准进行了归类;最后对汉字字符集相关的国家标准进行了分析评介。
关键词:计算机应用;中文信息处理;编码字符集中图分类号:TP391 文献标识码:AResearch on Coded Character Set Standards and C lassificationX I E Q ian1,2,RU I Jian-wu1,W U Jian1(1.Open Syste m and Ch i nes e Infor m ati on Processi ng Cen ter,Institute of Soft w are,C h i nes e A cade m y of S ci en ces,B eiji ng100080,Ch i na;2.S chool of Compu t er and In for m ation Engineeri ng,H enan Un i versity,Kaifeng,H enan475001,Ch ina)Ab strac t:Coded character se t standa rd are t he base s of t he co m puter t ex t infor m ati on processing.In t his pape r,a3-turples m ode l is proposed t o descibe the coded character se.t The ex isting code standards are reviewed and su mma-rized.A nd t he ISO2022and it's deriv i ng standards are ana l y zed in de tail;incl uding the li m ita tion o f u tilizi ng IS O 2022in m ultili ngua l env iron m en.t N ecessit y o f foundi ng UCS(U niversa lCha racter Se t)is present ed,a long w it h an outline ana l y sis o f UCS.A ft e r eva l uating current c l assifica tion m e t hods o f coded character set standa rds,a new m eth-od is produced w ith applica tion i n ca talogu i ng existing standa rds.W e c l o se ou r paper w ith a brief ana l ysis of i m po r-tan t Chinese na tiona l st andards on Han character se.tK ey word s:compu t e r applicati on;Ch i nese inf o r m ati on processing;coded character se t计算机应用从单纯的科学计算转向信息处理,是引发二十世纪信息革命的里程碑事件,而支撑这一转变的重要基础就是字符编码;通过制定字符编码标准,在人能理解的文字信息与计算机内部表达之间建立了一个基本的沟通桥梁,直到今天,基于文字的交互途径仍然是最主要的人机界面。
正如Unicode标准中所言[1],“对计算机软件系统而言,字符编码就像螺钉和螺母———虽然微小,却以各种方式被普遍使用。
”收稿日期:2005-07-08 定稿日期:2006-05-22基金项目:国家863计划资助项目(2003AA1Z2110);中国科学院知识创新工程资助项目(KGCX2-S W-504)作者简介:谢谦(1968—),男,博士生,主要研究领域为系统软件国际化,X W i ndow系统,L inux标准化.1 编码字符集标准:概念及发展文字是语言的载体,字符则是计算机处理文字信息的最基本抽象元素,通过使用特定的位组合(即所谓编码)来表示字符,文字信息得以存储和交换。
确定文字的字符编码就是要对三元组(G,C,f:C→G)做出定义,其中G代表字符集,C代表编码空间,f是C→G上的函数,定义了编码到字符的单值映射。
为了交换信息,字符编码必须进行标准化,即针对特定文字形成在一定范围内公认的三元组定义。
在实践中,存在不同类型的标准化,一种是在一个标准中对三元组做出完整规定,另一种是用不同标准对不同部分进行标准化。
字符编码技术和编码字符集标准经过了长期的发展,早期标准主要针对英文环境,最广为人知的是ANS I制定的ASC II。
在编码字符集标准发展过程中起重要作用的I SO2022《字符编码结构和扩充技术》最早发布于1973年[2],规定了编码空间的框架结构以及相应的编码扩充机制,为针对其他文字的编码字符集标准发展提供了坚实的基础。
ISO2022之后的大多数正式国家/地区标准均符合该框架,典型例子包括I SO8859系列单字节8位编码字符集标准、1978年日本发布的JI S C6226、1980年中国发布的GB2312、1986年中国台湾标准局发布的CNS-11643、1987年韩国发布的KS C5601等。
这一时期制定的编码字符集标准也有不符合I SO2022框架,然而被厂商较多使用而成为事实标准,如中国台湾地区的B I G5、日本的Shift-JI S等。
通用字符集(UCS)编码标准的制定是编码发展历程中另一个转折点,面向多语言应用环境,使用一个编码字符集覆盖世界上主要文字。
UCS起源于1984年,第一个被广泛接受的标准版本发布于1991年。
UCS由Unicode联盟和I SO/I EC JTC1/S C2W/G2两个机构进行标准化,二者协调工作保证标准的一致性。
2 IS O2022ISO2022规定了8位和7位编码的总体结构,定义了统一的编码元素,使得符合标准的编码可以在8位和7位形式之间自由转换;利用标准提供的各项技术,可以扩充基本编码空间的表示能力。
I SO2022使信息处理系统能够采用统一的编码处理方法,保证信息交换过程中使用一致的字符集,减少互操作系统之间产生冲突的机会。
2.1 IS O2022要点ISO2022的编码扩充技术非常灵活,要点包括抽象的编码元素规定、实际编码空间结构表示、在编码中使用特定编码字符集的方法、对特定编码方案定制的方法。
编码元素提供了一个连接实际编码字符集和编码空间的抽象层次,I SO2022规定的编码元素分四类:固定编码字符、编码图形字符集、编码控制字符集和编码单独附加控制功能。
编码扩充技术操作的主要对象是编码图形字符集和编码控制字符集,编码图形字符集可容纳字符数有四种限制值:94、96、94n、96n,n>1表示多字节字符集,标准中规定的该类编码元素包括G0、G1、G2和G3;编码控制字符集可容纳32字符,标准中规定的该类编码元素包括C0、C1。
ISO2022使用二维的码表描述其编码空间,用十进制的“列号/行号”表示码点。
编码空间中的不同区域及其用途如下:CL(00-01列)用于表示主控制功能集;CR(08-09列,仅适用于8位编码)用于表示辅控制功能集或不使用;GL(02-07列)和GR(10-15列,仅适用于8位编码)用于表示图形字符集。
在数据交换过程中表示一个特定编码字符集需要把该字符集“装入”到编码空间的特定区域,I SO2022规定该过程由指派和调用两个逻辑上独立的步骤完成,如图1所示。
图1 表示一个编码字符集指派(Designation)用于建立特定编码字符集与抽象编码元素之间的关联,可以利用I SO 2022定义的转义序列,结合按照I SO2375规定注册的编码字符集特征字符完成。
指派一个编码字符集的语义模式为:把[大小为<94|94n|96|96n>的]<字符集>指派到<编码元素>。
例如:ESC02/0402/0904/01的含义是:把大小为<942>的<GB2312-80>指派到<G1>。
调用(I nvoca tion)分配编码空间中的特定区域来表示抽象编码元素,控制字符集不必显式调用,对控制字符集的指派就同时完成了对其的调用。
与之相对,图形字符集的编码元素数大于实际编码空间中的区域数,调用过程应该显式进行。
图形字符集调用相关的控制功能包括: S I、SO、LS0、LS1、LS2、LS3、SS2、SS3、LS1R、LS2R、LS3R。
实际系统中既无必要也不可能实现I SO2022的全部功能,为此要对功能进行裁剪定制以适应环境需求。
I SO2022中定义的一些实现级别可看作功能定制的例子,一些其他标准机构制定的派生标准也可视作ISO2022的定制版本。
信息交换双方须在数据处理和交互之前就定制情况达成一致,作为可用声明手段之一,I SO2022提供了ACS(Announce C ode Str ucture)转义序列,从这个意义上讲,I SO2022是自洽的。
2.2 IS O2022相关标准有两类与I SO2022相关的标准:一类是在其框架内制定的编码字符集标准,特征是编码空间符合I SO2022编码元素要求,如GB2312标准中使用94×94表格为字符分配码位;另一类是编码方案标准,选用I SO2022的部分功能,结合具体编码字符集,形成针对特定应用环境、易于实现的编码方案,下面给出一些广泛使用的与中文相关的此类标准。