编码字符集标准及分类研究_谢谦
常用字符集编码详解:ASCII 、GB2312、GBK、GB18030、...
![常用字符集编码详解:ASCII 、GB2312、GBK、GB18030、...](https://img.taocdn.com/s3/m/0d23e1a4284ac850ad0242ef.png)
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位编码空间来支持汉字。
汉字编码字符集
![汉字编码字符集](https://img.taocdn.com/s3/m/20c628da50e79b89680203d8ce2f0066f53364a2.png)
汉字编码字符集汉字编码字符集是指用于表示和存储汉字的一套编码系统。
在计算机领域,为了能够准确地表示和处理汉字,人们设计了多种不同的汉字编码字符集。
本文将介绍几种常见的汉字编码字符集,包括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字符集中的所有字符。
在计算机系统中,为了使不同的系统能够正确地处理汉字编码,一般需要统一选择一种字符集来使用。
国家标准《信息技术汉字编码字符集(基本集)-全国信息技术标准化
![国家标准《信息技术汉字编码字符集(基本集)-全国信息技术标准化](https://img.taocdn.com/s3/m/258204602b160b4e777fcf0e.png)
1.工作简况
随着信息技术的不断发展,中文信息技术产品所使用硬件设备得到提升,中文信息系统及办公自动化设备对点阵字型出现了新的需求,为了满足中文信息系统对64点阵宋体的需求,根据工业和信息化部“2012年电子行业标准项目计划”的安排,对SJ 11242.1-2001进行修订,项目计划代号为2012-0526Q-SJ,标准名称为《信息技术通用多八位编码字符集(I区)汉字64点阵字型第1部分:宋体》。
本标准由中国电子技术标准化研究院,北京仓颉博雅信息技术有限公司等单位负责修订,标准主要起草人有代红、熊涛等。
根据上级主管部门下达的标准计划任务,由中国电子技术标准化研究院牵头成立了标准编制组和专家组,并制定了详细的标准研究实施方案。中国电子技术标准化研究院主要负责组织协调和标准文本起草,北京仓颉博雅信息技术有限公司负责字型设计,专家组负责字型审查工作。
为适应中文信息处理的发展和国际信息交换及汉字的规范化、标准化需求,在研制汉字字型的过程中,考虑到本标准的使用范围、时间和影响等因素,重点做了以下几个方面的工作:
(1)字形的正确性
常用字以《现代汉语常用字表》和《简化字总表》为依据容易确定,而超出规范字表的一些字在不同的字典里列出的字形不一致,因此,在字形整理时,不仅根据整理汉字字形的规则,还参考已有的标准及《康熙字典》、《汉语大字典》、《中华字海》等工具书,本着不放过任何一个疑问的原则,经过专家组的反复逐字审查讨论确定。
准确:字的笔划规范、偏旁规范、字形规范。
清楚:黑白适中、笔划清晰。
美观:字的结构要端正、大小匀称、组合比例协调,充分体现我国传统汉字各种字体的独特风格,做到“神、形”兼顾。
编码字符集标准及分类研究
![编码字符集标准及分类研究](https://img.taocdn.com/s3/m/387fc0d3ad51f01dc281f121.png)
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、...
![常用字符集编码详解:ASCII、GB2312、GBK、GB18030、...](https://img.taocdn.com/s3/m/a36df88da32d7375a5178002.png)
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是实际计算机环境中支持这种字符集的编码。
几种常见字符集与字符编码
![几种常见字符集与字符编码](https://img.taocdn.com/s3/m/ad4c2e082379168884868762caaedd3383c4b5f6.png)
⼏种常见字符集与字符编码字符集的概念 字符(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等等时,所有重⾳符号都不得不去掉,即使这样做会违反拼写规则)。
汉字编码常用的字符集
![汉字编码常用的字符集](https://img.taocdn.com/s3/m/5549137d366baf1ffc4ffe4733687e21af45ff9a.png)
汉字编码常用的字符集
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)多字符语⾔:不过真理也是有范围的,计算机的发展⼀⽇千⾥,⽼问题的新版本⼜来了,我们如何⽤字符来表⽰汉字,要知道汉字实在是太多了,怪不得中国⼈⽐⽼外就是聪明,能记得住这么多⽅块字符。
中文字符集、编码
![中文字符集、编码](https://img.taocdn.com/s3/m/fe4ddd3ca8114431b90dd86d.png)
前言由于工作的需要,参考了好多资料整理出来一份计算机汉字处理报告,不敢独享,希 望与大家共享。
Ziggler 现代计算机技术虽然先进, 但大多数人只知录入 GB-2313 字符集内的 6763 个简体汉字, 对包含 21003 个简繁体汉字的 GBK 字符集的文字录入、字体 显示就已不甚了解(市面上 绝大多数所谓的繁体字体,其实采用的是 GB2313 字符集简体字的编码,用字体显示为繁体 字,而不是直接用 GBK 字符集中繁体字 的编码,错误百出) 。
而汉字总数至少有近 10 万 个,目前计算机能处理的,也有 70244 个,已非一般人所能知能用了。
由于汉字总数非常庞大。
汉字总共有多少字?到目前为止, 恐怕没人能够答得上来精确 的数字。
据估计,汉字数量达到 11 万左右。
这里所说的七万多汉字, 是指 UNICODE 超大字集全部七万多中日韩汉字。
(注: Unicode 是指用两个字节表示每个字符的字符编码方案。
) 那一般计算机能够显示多少个汉字呢?比如大陆这边普遍安装简体 Windows 系统,而 简体 windows 以宋体为系统字型,宋体支持 GBK 编码,所以能显示 20902 个汉字。
要显示 71564 个汉字, 可以采取多种方案, 如: 宋体-方正超大字符集+新细明体 EXTB、 宋体-方正超大字符集+中易宋体 EXTB、宋体 GB18030+新细明体 ExtB、宋体 18030+宋体 ExtB 等等。
中文字符集、编码字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。
字符 集是多个字符的集合,字符集 种类较多,每个字符集包含的字符个数不同。
计算机要准确的处理各种字符集文字, 需要进行字符编码, 以便计算机能够识别和存储 各种文字。
中文文字数目大, 而且还分为简体中文和繁体中文两种不同书写规则的文字, 而计算机 最初是按英语单字节字符设计的, 因此, 对中文字符进行编码, 是中文信息交流的技术基础。
ISO 2022的有限状态机描述
![ISO 2022的有限状态机描述](https://img.taocdn.com/s3/m/ff013a12964bcf84b9d57b52.png)
中
文
信
息学Biblioteka 报 第2 0卷 第 6期 J UR ALOFC NE EI F MA I N P OC S I G 12 . O N HI S OR T O R E SN Vo.0No6 N
文章编号 : 0 1 3—07 (0 6 0 0 9 0 0 0 7 2 0 )6— 07— 7
Ab t a t T e e c d n y t m e n d b S 0 2 h s p r a ie e e t n al ot f a in h r ce es wh r — sr c : h n o ig s se d f e y I O 2 2 a e v s f c l s r o t a c a a trs t , e e i v o s n ol s a lt f c r i n r s o t s tn ad pe l d c u ae c mp e e s ot e a o o n e an e t e i sa d r r cu ea c r t o rh n in t h m.I i p p ra f i tt - u t i f h o n t s a n t sae ma h e i e
X EQa , U inw ,WU J n I i R I a—u n J i a
( p nS s m adC ieeIfr t nPoes gC ne , ntueo ow r , A ,B in 0 0 0 hn ) O e yt n hns n mao r sn etr Istt f f ae C S e ig10 8 ,C ia e o i c i i St j
o g l e o o e ;ip ts ti d vd d i t ae o e ;sat sae a d a c p a c tt e r r vd d;s ae o u h y d c mp s d n u e s ii e no c tg r s tr t t n c e t e s e s t ae p o i e i n a c f l t n i o u cin sa ay e ,Ths F M e c p in meh d i a s p l d t e e a o e h a trs t ,s c s r st n f n t si n l z d a i o i S d s r t to s loa p i s v r c d d c a ce es u h a i o e o l r I O一 0 2 C S 2 2 一 N,EUC C ,a d c mp u d tx , o rv a h i itr a eain h p w t S 0 2 — N n o o n t t e e t er n e n r lt s i i I O 2 2 .T i w r epu e l l o h hs oki h lfl s t ee t h o sse c f S 0 2,t rf e tn e tn a d d t v u t h o lxt f y tm mp e n o d tc e c n itn yo O 2 2 t I o d at xe d d sa d sa e a ae t e c mp e i o se i l me — r n o l y s
中文编码字符集标准大全
![中文编码字符集标准大全](https://img.taocdn.com/s3/m/d142cf2b7375a417866f8f7f.png)
中文编码字符集标准大全.txtゅ你不用一上线看见莪在线,就急着隐身,放心。
莪不会去缠你。
说好的不离不弃现在反而自己却做不到╮中文编码字符集标准大全国家标准代码,简称国标码,是中华人民共和国的中文常用汉字编码集,亦为新加坡采用。
现时中华人民共和国官方强制使用GB 18030标准,但较旧的计算机仍然使用GB 2312。
较常见的国家汉字标准代码列表:GB 2312-80信息交换用汉字编码字符集基本集(又称 GB 或 GB0)GB 13000.1-93信息技术通用多八位编码字符集(UCS)第一部分(相当于 ISO 10646-1:1993 中文版)GB 18030-2005信息技术中文编码字符集---GB 2312或GB 2312-80是一个简体中文字符集的中国国家标准,全称为《信息交换用汉字编码字符集·基本集》,又称为GB0,由中国国家标准总局发布,1981年5 月1日实施。
GB2312编码通行于中国大陆;新加坡等地也采用此编码。
中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。
GB 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB 2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。
GB2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。
对于人名、古汉语等方面出现的罕用字,GB 2312不能处理,这导致了后来GBK及GB 18030汉字字符集的出现。
--GB 13000,中华人民共和国国家标准的国家标准代码之一,全称 GB 13000.1-93《信息技术通用多八位编码字符集(UCS)第一部分:体系结构与基本多文种平面》。
此标准等同采用国际标准化组织 ISO/IEC 10646.1:1993《信息技术通用多八位编码字符集(UCS)第一部分:体系结构与基本多文种平面》。
中文汉字的各种编码标准
![中文汉字的各种编码标准](https://img.taocdn.com/s3/m/fc0c6ae10408763231126edb6f1aff00bed570bb.png)
中文汉字的各种编码标准
随着计算机技术的不断发展,中文汉字的编码标准也相应地出现了多种。
这些编码标准的出现,对于中文汉字的输入、存储、传输等方面都起到了重要的作用。
目前,常见的中文汉字编码标准主要有以下几种:
1. GB2312编码:GB2312是我国首个官方公布的中文字符集,共收录了6763个常用汉字和682个生僻汉字,是目前使用最广泛的汉字编码标准之一。
2. GBK编码:GBK是GB2312的扩展版本,包含了大约21000个汉字,包括了GB2312中的所有字符,并增加了一些生僻汉字和繁体汉字。
GBK编码标准的出现,大大方便了中文汉字的输入和存储。
3. GB18030编码:GB18030是我国最新的汉字编码标准,共收录了70244个字符,包括了GB2312、GBK中的所有字符以及一些罕见汉字、藏文、蒙文等字符。
GB18030编码标准的出现,使得中文汉字在国际间的交流变得更加便捷。
4. Unicode编码:Unicode是一种全球范围内通用的字符集标准,包括了世界上所有的语言和符号。
其中,汉字部分被分为中日韩统一表意文字(简称CJK汉字),是目前最常用的汉字编码标准之一。
总之,中文汉字编码标准的多样化和不断更新,为中文汉字的计算机化应用提供了强有力的支持。
在未来,随着技术的不断发展,我们也有理由期待更加先进、更加智能的汉字编码标准的出现。
- 1 -。
编码字符集标准及分类研究_谢谦
![编码字符集标准及分类研究_谢谦](https://img.taocdn.com/s3/m/2644496f1711cc7931b7166d.png)
中 文 信 息 学 报第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,ISO10646,UCS,UTF8,UTF16,GBK,GB...
![对字符编码与Unicode,ISO10646,UCS,UTF8,UTF16,GBK,GB...](https://img.taocdn.com/s3/m/56d05627bfd5b9f3f90f76c66137ee06eff94ea0.png)
对字符编码与Unicode,ISO10646,UCS,UTF8,UTF16,GBK,GB...对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解——————————-Unicode:制定的编码机制, 要将全世界常用文字都函括进去.在1.0中是16位编码, 由U+0000到U+FFFF. 每个2byte码对应一个字符; 在2.0开始抛弃了16位限制, 原来的16位作为基本位平面, 另外增加了16个位平面, 相当于20位编码, 编码范围0到0×10FFFF.UCS:ISO制定的ISO10646标准所定义的 Universal Character Set, 采用4byte编码.Unicode与UCS的关系:ISO与是两个不同的组织, 因此最初制定了不同的标准; 但自从unicode2.0开始, unicode采用了与ISO 10646-1相同的字库和字码, ISO也承诺ISO10646将不会给超出0×10FFFF的UCS-4编码赋值, 使得两者保持一致.UCS的编码方式:UCS-2, 与unicode的2byte编码基本一样.UCS-4, 4byte编码, 目前是在UCS-2前加上2个全零的byte.UTF: Unicode/UCS Transformation FormatUTF-8, 8bit编码, ASCII不作变换, 其他字符做变长编码, 每个字符1-3 byte. 通常作为外码. 有以下优点:* 与CPU字节顺序无关, 可以在不同平台之间交流* 容错能力高, 任何一个字节损坏后, 最多只会导致一个编码码位损失, 不会链锁错误(如GB码错一个字节就会整行乱码)UTF-16, 16bit编码, 是变长码, 大致相当于20位编码, 值在0到0×10FFFF之间, 基本上就是unicode编码的实现. 它是变长码, 与CPU字序有关, 但因为最省空间, 常作为网络传输的外码.UTF-16是unicode的preferred encoding.UTF-32, 仅使用了unicode范围(0到0×10FFFF)的32位编码, 相当于UCS-4的子集.UTF与unicode的关系:Unicode是一个字符集, 可以看作为内码.而UTF是一种编码方式, 它的出现是因为unicode不适宜在某些场合直接传输和处理. UTF-16直接就是unicode编码, 没有变换, 但它包含了0×00在编码内, 头256字节码的第一个byte都是0×00, 在操作系统(C语言)中有特殊意义, 会引起问题. 采用UTF-8编码对unicode的直接编码作些变换可以避免这问题, 并带来一些优点.中国国标编码:GB 13000: 完全等同于ISO 10646-1/Unicode 2.1, 今后也将随ISO 10646/Unicode的标准更改而同步更改.GBK: 对GB2312的扩充, 以容纳GB2312字符集范围以外的Unicode 2.1的统一汉字部分, 并且增加了部分unicode中没有的字符.GB 18030-2000: 基于GB 13000, 作为Unicode 3.0的GBK 扩展版本, 覆盖了所有unicode编码, 地位等同于UTF-8, UTF-16, 是一种unicode编码形式. 变长编码, 用单字节/双字节/4字节对字符编码. GB18030向下兼容GB2312/GBK.GB 18030是中国所有非手持/嵌入式计算机系统的强制实施标准.——————————-什么是 UCS 和 ISO 10646?国际标准 ISO 10646 定义了通用字符集 (Universal Character Set, UCS). UCS 是所有其他字符集标准的一个超集. 它保证与其他字符集是双向兼容的. 就是说, 如果你将任何文本字符串翻译到 UCS格式, 然后再翻译回原编码, 你不会丢失任何信息.UCS 包含了用于表达所有已知语言的字符. 不仅包括拉丁语,希腊语, 斯拉夫语,希伯来语,阿拉伯语,亚美尼亚语和乔治亚语的描述, 还包括中文, 日文和韩文这样的象形文字, 以及平假名, 片假名, 孟加拉语, 旁遮普语果鲁穆奇字符(Gurmukhi), 泰米尔语, 印.埃纳德语(Kannada), Malayalam, 泰国语, 老挝语, 汉语拼音(Bopomofo), Hangul, Devangari, Gujarati, Oriya, Telugu 以及其他数也数不清的语. 对于还没有加入的语言, 由于正在研究怎样在计算机中最好地编码它们, 因而最终它们都将被加入. 这些语言包括Tibetian, 高棉语, Runic(古代北欧文字), 埃塞俄比亚语, 其他象形文字, 以及各种各样的印-欧语系的语言, 还包括挑选出来的艺术语言比如 Tengwar, Cirth 和克林贡语(Klingon). UCS 还包括大量的图形的, 印刷用的, 数学用的和科学用的符号, 包括所有由TeX, Postscript, MS-DOS,MS-Windows, Macintosh, OCR 字体, 以及许多其他字处理和出版系统提供的字符.ISO 10646 定义了一个 31 位的字符集. 然而, 在这巨大的编码空间中, 迄今为止只分配了前 65534 个码位(0×0000 到 0xFFFD). 这个UCS 的16位子集称为基本多语言面(Basic Multilingual Plane, BMP). 将被编码在 16 位 BMP 以外的字符都属于非常特殊的字符(比如象形文字), 且只有专家在历史和科学领域里才会用到它们. 按当前的计划, 将来也许再也不会有字符被分配到从0×000000 到0×10FFFF 这个覆盖了超过100 万个潜在的未来字符的21 位的编码空间以外去了. ISO 10646-1 标准第一次发表于 1993 年, 定义了字符集与 BMP 中内容的架构. 定义BMP 以外的字符编码的第二部分ISO 10646-2 正在准备中, 但也许要过好几年才能完成. 新的字符仍源源不断地加入到 BMP 中, 但已经存在的字符是稳定的且不会再改变了.UCS 不仅给每个字符分配一个代码, 而且赋予了一个正式的名字. 表示一个 UCS 或 Unicode 值的十六进制数, 通常在前面加上“U+”, 就象 U+0041 代表字符”拉丁大写字母A”. UCS 字符 U+0000 到U+007F 与 US-ASCII(ISO 646) 是一致的, U+0000 到 U+00FF 与ISO 8859-1(Latin-1) 也是一致的. 从U+E000 到U+F8FF, 已经BMP 以外的大范围的编码是为私用保留的.什么是组合字符?UCS里有些编码点分配给了组合字符.它们类似于打字机上的无间隔重音键. 单个的组合字符不是一个完整的字符. 它是一个类似于重音符或其他指示标记, 加在前一个字符后面. 因而, 重音符可以加在任何字符后面. 那些最重要的被加重的字符, 就象普通语言的正字法(orthographies of common languages)里用到的那种, 在 UCS 里都有自己的位置, 以确保同老的字符集的向后兼容性. 既有自己的编码位置, 又可以表示为一个普通字符跟随一个组合字符的被加重字符, 被称为预作字符(precomposed characters). UCS 里的预作字符是为了同没有预作字符的旧编码, 比如ISO 8859, 保持向后兼容性而设的. 组合字符机制允许在任何字符后加上重音符或其他指示标记, 这在科学符号中特别有用, 比如数学方程式和国际音标字母, 可能会需要在一个基本字符后组合上一个或多个指示标记.组合字符跟随着被修饰的字符. 比如, 德语中的元音变音字符(“拉丁大写字母A 加上分音符”), 既可以表示为 UCS 码 U+00C4 的预作字符, 也可以表示成一个普通“拉丁大写字母A” 跟着一个”组合分音符”:U+0041 U+0308 这样的组合. 当需要堆叠多个重音符, 或在一个基本字符的上面和下面都要加上组合标记时, 可以使用多个组合字符. 比如在泰国文中, 一个基本字符最多可加上两个组合字符.什么是 UCS 实现级别?不是所有的系统都需要支持象组合字符这样的 UCS 里所有的先进机制. 因此 ISO 10646 指定了下列三种实现级别:级别1不支持组合字符和 Hangul Jamo 字符 (一种特别的, 更加复杂的韩国文的编码, 使用两个或三个子字符来编码一个韩文音节) 级别2类似于级别1, 但在某些文字中, 允许一列固定的组合字符(例如, 希伯来文, 阿拉伯文, Devangari, 孟加拉语, 果鲁穆奇语, Gujarati, Oriya, 泰米尔语, Telugo, 印.埃纳德语, Malayalam, 泰国语和老挝语). 如果没有这最起码的几个组合字符, UCS 就不能完整地表达这些语言.级别3支持所有的UCS 字符, 例如数学家可以在任意一个字符上加上一个 tilde(颚化符号,西班牙语字母上面的~)或一个箭头(或两者都加).什么是 Unicode?历史上, 有两个独立的, 创立单一字符集的尝试. 一个是国际标准化组织(ISO)的 ISO 10646 项目, 另一个是由(一开始大多是美国的)多语言软件制造商组成的协会组织的Unicode 项目. 幸运的是, 1991年前后, 两个项目的参与者都认识到, 世界不需要两个不同的单一字符集. 它们合并双方的工作成果, 并为创立一个单一编码表而协同工作. 两个项目仍都存在并独立地公布各自的标准, 但Unicode 协会和ISO/IEC JTC1/SC2 都同意保持 Unicode 和 ISO 10646 标准的码表兼容, 并紧密地共同调整任何未来的扩展.那么 Unicode 和 ISO 10646 不同在什么地方?Unicode 协会公布的 Unicode 标准严密地包含了 ISO 10646-1 实现级别3的基本多语言面. 在两个标准里所有的字符都在相同的位置并且有相同的名字.Unicode 标准额外定义了许多与字符有关的语义符号学, 一般而言是对于实现高质量的印刷出版系统的更好的参考. Unicode 详细说明了绘制某些语言(比如阿拉伯语)表达形式的算法, 处理双向文字(比如拉丁与希伯来文混合文字)的算法和排序与字符串比较所需的算法, 以及其他许多东西.另一方面, ISO 10646 标准, 就象广为人知的 ISO 8859 标准一样, 只不过是一个简单的字符集表. 它指定了一些与标准有关的术语, 定义了一些编码的别名, 并包括了规范说明, 指定了怎样使用 UCS 连接其他ISO 标准的实现, 比如 ISO 6429 和 ISO 2022. 还有一些与 ISO 紧密相关的, 比如 ISO 14651 是关于 UCS 字符串排序的.考虑到Unicode 标准有一个易记的名字, 且在任何好的书店里的Addison-Wesley 里有, 只花费 ISO 版本的一小部分, 且包括更多的辅助信息, 因而它成为使用广泛得多的参考也就不足为奇了. 然而, 一般认为, 用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印Unicode 2.0的. 专业字体设计者总是被建议说要两个标准都实现, 但一些提供的样例字形有显著的区别. ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文, 日文和韩文(CJK), 而Unicode 2.0 的表里只有中文的变体. 这导致了普遍的认为Unicode 对日本用户来说是不可接收的传说, 尽管是错误的.什么是 UTF-8?首先 UCS 和 Unicode 只是分配整数给字符的编码表. 现在存在好几种将一串字符表示为一串字节的方法. 最显而易见的两种方法是将Unicode 文本存储为 2 个或 4 个字节序列的串. 这两种方法的正式名称分别为 UCS-2 和 UCS-4. 除非另外指定, 否则大多数的字节都是这样的(Bigendian convention). 将一个 ASCII 或 Latin-1 的文件转换成 UCS-2 只需简单地在每个 ASCII 字节前插入0×00. 如果要转换成UCS-4, 则必须在每个 ASCII 字节前插入三个0×00.在 Unix 下使用 UCS-2 (或 UCS-4) 会导致非常严重的问题. 用这些编码的字符串会包含一些特殊的字符, 比如‘\0′ 或‘/’, 它们在文件名和其他C 库函数参数里都有特别的含义. 另外, 大多数使用ASCII 文件的 UNIX 下的工具, 如果不进行重大修改是无法读取 16 位的字符的. 基于这些原因, 在文件名, 文本文件, 环境变量等地方, UCS-2 不适合作为 Unicode 的外部编码.在 ISO 10646-1 Annex R和 RFC 2279 里定义的 UTF-8 编码没有这些问题. 它是在 Unix 风格的操作系统下使用 Unicode 的明显的方法.UTF-8 有一下特性:•UCS 字符 U+0000 到 U+007F (ASCII) 被编码为字节0×00 到0×7F (ASCII 兼容). 这意味着只包含 7 位 ASCII 字符的文件在 ASCII 和 UTF-8 两种编码方式下是一样的.•所有 >U+007F 的 UCS 字符被编码为一个多个字节的串, 每个字节都有标记位集. 因此, ASCII 字节(0×00-0×7F) 不可能作为任何其他字符的一部分.•表示非ASCII 字符的多字节串的第一个字节总是在0xC0 到0xFD 的范围里, 并指出这个字符包含多少个字节. 多字节串的其余字节都在0×80 到 0xBF 范围里. 这使得重新同步非常容易, 并使编码无国界, 且很少受丢失字节的影响.•可以编入所有可能的 231个 UCS 代码•UTF-8 编码字符理论上可以最多到 6 个字节长, 然而 16 位 BMP 字符最多只用到 3 字节长.•Bigendian UCS-4 字节串的排列顺序是预定的.•字节 0xFE 和 0xFF 在 UTF-8 编码中从未用到.下列字节串用来表示一个字符. 用到哪个串取决于该字符在Unicode 中的序号.xxx 的位置由字符编码数的二进制表示的位填入. 越靠右的 x 具有越少的特殊意义. 只用最短的那个足够表达一个字符编码数的多字节串. 注意在多字节串中, 第一个字节的开头”1″的数目就是整个串中字节的数目.例如: Unicode 字符 U+00A9 = 1010 1001 (版权符号) 在 UTF-8 里的编码为:11000010 10101001 = 0xC2 0xA9而字符 U+2260 = 0010 0010 0110 0000 (不等于) 编码为:11100010 10001001 10100000 = 0xE2 0×89 0xA0这种编码的官方名字拼写为UTF-8, 其中UTF 代表UCS Transformation Format. 请勿在任何文档中用其他名字 (比如 utf8 或 UTF_8) 来表示 UTF-8, 当然除非你指的是一个变量名而不是这种编码本身.什么编程语言支持 Unicode?在大约1993 年之后开发的大多数现代编程语言都有一个特别的数据类型, 叫做Unicode/ISO 10646-1 字符. 在Ada95 中叫Wide_Character, 在 Java 中叫 char.ISO C 也详细说明了处理多字节编码和宽字符 (wide characters) 的机制, 1994 年 9 月Amendment 1 to ISO C发表时又加入了更多. 这些机制主要是为各类东亚编码而设计的, 它们比处理UCS 所需的要健壮得多. UTF-8 是 ISO C 标准调用多字节字符串的编码的一个例子,wchar_t类型可以用来存放 Unicode 字符.。
计算机基础:字符集和编码
![计算机基础:字符集和编码](https://img.taocdn.com/s3/m/f09b32d609a1284ac850ad02de80d4d8d15a010f.png)
计算机基础:字符集和编码背景知识计算机中的数据是⼆进制存储,⽽⼈类的⽂字对计算机来说是不能识别的。
那么为了让计算机能够处理⽂字,就需要⼈为的给⽂字设置⼀个数字编码(⽐如65代表A),数字再转为⼆进制数据,计算机才能够正常处理。
什么是字符集⼈⼯收集的⼀批⽂字符号的集合就称为字符集。
显然由于⽂化、国界的存在,⾃然会产⽣多种字符集,⽐如美国的字符集:主要包含英⽂⼦母、⾳标、标点符号等,这就是ascii字符集中国的字符集:主要包含中⽂⽂字、标点符号等,这就是gb2312字符集等随着计算机的发展普及,上述这种区域性的字符集⽆法满⾜使⽤需求。
因此产⽣了⼀种能够代表全世界⼈类⽂明的通⽤字符集,称为Unicode。
什么是字符编码上述过程中,将字符集中的字符和数字建⽴对应关系(⽐如65代表A),就是字符编码;显然字符集和字符编码是密不可分的。
如:ASCII字符集:总数量为256个ASCII编码:由于ASCII字符集数量较⼩,因此⼀个字节所表⽰的数字个数(256)就能⾜够表⽰全部的字符集。
即ASCII编码后,每个字符的存储空间就是1字节。
缺点:由于ASCII是最早的字符集,且初期主要⽤于美国,因此字符集的覆盖率显然不⾜。
如:GB2312字符集&编码不同于ASCII字符集,中⽂体系可不仅⼏百个字符,因此需要建⽴⼀种字符集和对应的编码来满⾜计算机处理中⽂的需求。
于是由中国国家标准总局发布,在1981年5⽉1⽇实施了GB2312字符集&编码标准。
该字符集收录的汉字已经覆盖中国⼤陆99.75%的使⽤频率。
GB2312编码通⾏于中国⼤陆,不仅如此,新加坡等地也采⽤此编码。
但是源于中⽂⽂化的博⼤精深,对于⼈名、古汉语等⽅⾯出现的罕⽤字,GB2312也不能处理了,这导致了后来GBK及GB 18030汉字字符集的出现;存储空间:基于兼容性及节省空间的要求,英⽂字符依然采⽤1字节存储。
⽽中⽂则采⽤2字节来表⽰。
Unicode字符集和编码以上还都是区域性的字符集和编码,随着计算机普及和⽹络发展,继续⼀种能够在全世界通⽤的字符集和编码,于是Unicode诞⽣了。
字符集及其编码
![字符集及其编码](https://img.taocdn.com/s3/m/61d7351d4a7302768e993935.png)
字符集及其编码一,字符集1,常用字符集分类ASCII及其扩展字符集作用:表语英语及西欧语言。
位数:ASCII是用7位表示的,能表示128个字符;其扩展使用8位表示,表示256个字符。
范围:ASCII从00到7F,扩展从00到FF。
ISO-8859-1字符集作用:扩展ASCII,表示西欧、希腊语等。
位数:8位,范围:从00到FF,兼容ASCII字符集。
GB2312字符集作用:国家简体中文字符集,兼容ASCII。
位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。
范围:高字节从A1到F7, 低字节从A1到FE。
将高字节和低字节分别加上0XA0即可得到编码。
BIG5字符集作用:统一繁体字编码。
位数:使用2个字节表示,表示13053个汉字。
范围:高字节从A1到F9,低字节从40到7E,A1到FE。
GBK字符集作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。
位数:使用2个字节表示,可表示21886个字符。
范围:高字节从81到FE,低字节从40到FE。
GB18030字符集作用:它解决了中文、日文、朝鲜语等的编码,兼容GBK。
位数:它采用变字节表示(1 ASCII,2,4字节)。
可表示27484个文字。
范围:1字节从00到7F; 2字节高字节从81到FE,低字节从40到7E和80到FE;4字节第一三字节从81到FE,第二四字节从30到39。
UCS字符集作用:国际标准ISO 10646 定义了通用字符集(Universal Character Set)。
它是与UNICODE 同类的组织,UCS-2和UNICODE兼容。
位数:它有UCS-2和UCS-4两种格式,分别是2字节和4字节。
范围:目前,UCS-4只是在UCS-2前面加了0×0000。
UNICODE字符集作用:为世界650种语言进行统一编码,兼容ISO-8859-1。
位数:UNICODE字符集有多个编码方式,分别是UTF-8,UTF-16和UTF-32。
各种字符集和编码详解
![各种字符集和编码详解](https://img.taocdn.com/s3/m/1deba8f6710abb68a98271fe910ef12d2af9a9a5.png)
各种字符集和编码详解在软件的编码和实现中,我们可能会碰到个⼀个⽐较头疼的问题--编码,不同字符间的编码和解码,你确定了解各种字符的编码吗?⼀个朋友问到了我这个问题,我虽然能回答⼀两个出来,但是感觉已经有点模糊,混乱了,在⽹上搜了搜,在书上翻了翻,总结⼀下吧。
⾸先按照字符编码的历程来看:1. ASCII我们需要了解的最早编码是ASCII码。
它⽤7个⼆进制位来表⽰,由于那个时期⽣产的⼤多数计算机使⽤8位⼤⼩的字节,因此⽤户不仅可以存放所有可能的ASCII字符,⽽且有整整⼀位空余下来。
如果你技艺⾼超,可以将该位⽤做⾃⼰离奇的⽬的:WordStar中那个发暗的灯泡实际上设置这个⾼位,以指⽰⼀个单词中的最后⼀个字母,同时这也宣⽰了WordStar只能⽤于英语⽂本。
由于字节有多达8位的空间,因此许多⼈在想:“呀!我们可以把128~255之间的编码⽤做个⼈的应⽤⽬的。
”问题在于,同时产⽣这种想法的⼈相当多,⽽且在128~255之间的各个位置上应该存放什么这⼀问题上,真是仁者见仁智者见智。
事实上,只要⼈们开始在美国以外的地⽅购买计算机,那么各种各样的不同OEM字符集都会进⼊规划设计⾏列,并且各⼈都会根据⾃⼰的需要使⽤⾼位的128个字符。
如此⼀来,甚⾄在同语种的⽂档之间就不容易实现互换。
ASCII可被扩展,最优秀的扩展⽅案是ISO 8859-1,通常称之为Latin-1。
Latin-1包括了⾜够的附加字符集来写基本的西欧语⾔。
最后,这个⼈⼈参与的OEM终于以ANSI标准的形式形成⽂件。
在ANSI标准中,每个⼈都认同如何使⽤低端的128个编码,这与ASCII相当⼀致。
不过,根据所在国籍的不同,处理编码128以上的字符有许多不同的⽅式。
这些不同的系统称为代码页。
同时,甚⾄更为令⼈头疼的事情正在逐步上演,亚洲国家的字符表有成千上万个字符,这样的字符表是⽤8位⼆进制⽆法表⽰的。
该问题的解决通常有赖于称为DBCS(double byte character set,双字节字符集)的繁杂字符系统。
快速学会区分“字符集”与“字符编码”——附:内码与外码区别
![快速学会区分“字符集”与“字符编码”——附:内码与外码区别](https://img.taocdn.com/s3/m/67396997bdeb19e8b8f67c1cfad6195f302be850.png)
快速学会区分“字符集”与“字符编码”——附:内码与外码区别⼀、引⾔ ⽇常复习总结,发现太久不看基础,很多概念的东西还是给忘了,本⽂将教你如何快速区分“字符”与“字符集”。
⼆、基础知识2.1 字符 各种⽂字和符号的总称,包括各国家⽂字、标点符号、图形符号、数字等。
也就是说,它是⼀个信息单位,⼀个数字是⼀个字符,⼀个⽂字是⼀个字符,⼀个标点符号也是⼀个字符。
2.2 字节 字节是⼀个8bit的存储单元,取值范围是0x00~0xFF。
根据字符编码的不同,⼀个字符可以是单个字节的,也可以是多个字节的。
2.3 字符集 字符的集合就叫字符集。
不同集合⽀持的字符范围⾃然也不⼀样,譬如ASCII只⽀持英⽂,GB18030⽀持中⽂等等。
在字符集中,有⼀个码表的存在,每⼀个字符在各⾃的字符集中对应着⼀个唯⼀的码。
但是同⼀个字符在不同字符集中的码是不⼀样的,譬如字符“中”在Unicode和GB18030中就分别对应着不同的码(20013与54992)。
简单来说,字符集就是⼀个按规则排列的字符的集合,可以理解为现实⽣活中的各种“字典”。
例如:⽜津字典,剑桥商务字典等等。
同⼀个“单词”在不同的字典中的位置是不同的,同理也不是所有的字典都⽀持各种语⾔的,例如ASCLL字符集⾥⾯就没有中⽂。
2.4 字符编码 定义字符集中的字符如何编码为特定的⼆进制数,以便在计算机中存储(就是将字符在字符集中的对应位置化为⼆进制)。
字符集和字符编码⼀般⼀⼀对应(也有例外) 字符集与字符编码的⼀个例外就是Unicode字符集,它有多种编码实现(UTF-8,UTF-16,UTF-32等)三、举例理解 其实通过上⾯的标蓝的句⼦相信⼤家已经有了区分的理解。
下⾯再举出⼀些例⼦,来加深⼤家的理解:ASCII码是⼀个字符集,同时它的实现也只有⼀种,因此它也可以指代这个字符集对应的字符编码。
GB18030是⼀个字符集,主要是中国⼈为了解决中⽂⽽发明制定的,由于它的实现也只有⼀种,所以它也可以指代这个字符集对应的字符编码。
国家标准信息技术汉字编码字符集基本集
![国家标准信息技术汉字编码字符集基本集](https://img.taocdn.com/s3/m/b5b45c5bf242336c1eb95ec1.png)
国家标准《信息技术大数据分析系统功能测试要求》(征求意见稿)编制说明1、任务来源按照国家标准委2017年第二批国家标准制修订计划的通知,全国信息技术标准化技术委员会启动了《信息技术大数据分析系统功能测试规范》(立项号:20171065-T-469)的制定工作。
本标准为自主制定标准,起草单位为浪潮电子信息产业股份有限公司、中国电子技术标准化研究院、上海软件中心、浪潮软件、勤智数码、四方伟业、迅策、陕西信研院、中堃数据、平安集团、内蒙古大学等,主办单位为浪潮电子信息产业股份有限公司,归口单位为全国信息技术标准化技术委员会(SAC/TC28)。
2、编制背景数据作为一种资源在经济与社会实践中扮演着越来越重要的角色。
大数据是指需要新处理模式才能具有更高的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的数据信息。
大数据的特征包括:海量的数据规模、快速数据流转和动态的数据体系、多样的数据类型和巨大的数据价值。
如何更为有效地提取大数据中的隐藏价值,也成为大数据相关领域中重点问题,大数据分析系统在大数据技术及应用中的重要作用就愈为明显。
当前,各公司纷纷推出其大数据分析系统(即大数据处理分析平台类产品),但是对于各个模块的功能基本要求及测试规范并不统一,因此急需制定大数据分析系统的相关标准。
本标准制定目的是给出大数据分析系统基本功能要求的测试规范和测试用例。
本标准对应已报批标准《信息技术大数据分析系统基本功能要求》。
该标准的研制将实现大数据分析系统功能要求测试流程和方法的标准化,推动《信息技术大数据分析系统基本功能要求》测试和实施。
通过此标准的制定,更有利于用户和厂商明确对应产品的测试以及使用方法,也有利于相关产业的发展,进而健全大数据标准体系。
3、编制原则本标准将吸取当前大数据分析系统的最新技术要求及产品研制成果,依据《信息技术大数据分析系统基本功能要求》,研究制定相应的要求测试规范和测试用例,为大数据分析系统的基本功能要求落地提供测试支撑。
- 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的部分功能,结合具体编码字符集,形成针对特定应用环境、易于实现的编码方案,下面给出一些广泛使用的与中文相关的此类标准。