1.【简述汉字输入码,汉字内码,汉字字形码,汉字交换码区别】
计算机中信息的编码 在计算机中,各种信息都是以二进制编码的形式存在的;也就是说,不管是文字、图形、声音、动画,还是电影等各种信息,在计算机中都是以0和1组成的二进制代码表示的;计算机之所以能区别这些信息的不同,是因为它们采用的编码规则不同.比如:同样是文字,英文字母与汉字的编码规则就不同,英文字母用的是单字节的ASCII码,汉字采用的是双字节的汉字内码;但随着需求的变化,这两种编码有被统一的UNICODE码(由Unicode 协会开发的能表示几乎世界上所有书写语言的字符编码标准)所取代的趋势;当然图形、声音等的编码就更复杂多样了.这也就告诉我们,信息在计算机中的二进制编码是一个不断发展的、高深的、跨学科的知识领域.1、字符(英文,包括字母、数字、标点、运算符等)编码 字符的编码采用国际通用的ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码),每个ASCII码以1个字节(Byte)储存,从0到数字127代表不同的常用符号,例如大写A的ASCII码是65,小写a则是97.由于ASCII码只用了字节的七个位,最高位并不使用,所以后来又将最高的一个位也编入这套编码码中,成为八个位的延伸ASCII(ExtendedASCII)码,这套内码加上了许多外文和表格等特殊符号,成为目前常用的编码.基本的ASCII字符集共有128个字符,其中有96个可打印字符,包括常用的字母、数字、标点符号等,另外还有32个控制字符.标准ASCII码使用7个二进位对字符进行编码,对应的ISO标准为ISO646标准.下表展示了基本ASCII字符集及其编码: 字母和数字的ASCII码的记忆是非常简单的.我们只要记住了一个字母或数字的ASCII码(例如记住A为65,0的ASCII码为48),知道相应的大小写字母之间差32,就可以推算出其余字母、数字的ASCII码. 虽然标准ASCII码是7位编码,但由于计算机基本处理单位为字节(1byte = 8bit),所以一般仍以一个字节来存放一个ASCII字符.每一个字节中多余出来的一位(最高位)在计算机内部通常保持为0(在数据传输时可用作奇偶校验位).由于标准ASCII字符集字符数目有限,在实际应用中往往无法满足要求.为此,国际标准化组织又制定了ISO2022标准,它规定了在保持与ISO646兼容的前提下将ASCII字符集扩充为8位代码的统一方法.ISO陆续制定了一批适用于不同地区的扩充ASCII字符集,每种扩充ASCII字符集分别可以扩充128个字符,这些扩充字符的编码均为高位为1的8位代码(即十进制数128~255),称为扩展ASCII码.下表展示的是最流行的一套扩展ASCII字符集和编码: 2、汉字的编码(1)汉字内码 汉字信息在计算机内部也是以二进制方式存放.由于汉字数量多,用一个字节的128种状态不能全部表示出来,因此在1980年我国颁布的《信息交换用汉字编码字符集——基本集》,即国家标准GB2312-80方案中规定用两个字节的十六位二进制表示一个汉字,每个字节都只使用低7位(与ASCII码相同),即有128*128=16384种状态.由于ASCII码的34个控制代码在汉字系统中也要使用,为不致发生冲突,不能作为汉字编码,128除去34只剩94种,所以汉字编码表的大小是94*94=8836,用以表示国标码规定的7445个汉字和图形符号. 每个汉字或图形符号分别用两位的十进制区码(行码)和两位的十进制位码(列码)表示,不足的地方补0,组合起来就是区位码.把区位码按一定的规则转换成的二进制代码叫做信息交换码(简称国标码).国标码共有汉字6763个(一级汉字,是最常用的汉字,按汉语拼音字母顺序排列,共3755个;二级汉字,属于次常用汉字,按偏旁部首的笔划顺序排列,共3008个),数字、字母、符号等682个,共7445个. 由于国标码不能直接存储在计算机内,为方便计算机内部处理和存储汉字,又区别于ASCII码,将国标码中的每个字节在最高位改设为1,这样就形成了在计算机内部用来进行汉字的存储、运算的编码叫机内码(或汉字内码,或内码).内码既与国标码有简单的对应关系,易于转换,又与ASCII码有明显的区别,且有统一的标准(内码是惟一的). (2)汉字外码 无论是区位码或国标码都不利于输入汉字,为方便汉字的输入而制定的汉字编码,称为汉字输入码.汉字输入码属于外码.不同的输入方法,形成了不同的汉字外码.常见的输入法有以下几类: 按汉字的排列顺序形成的编码(流水码):如区位码; 按汉字的读音形成的编码(音码):如全拼、简拼、双拼等; 按汉字的字形形成的编码(形码):如五笔字型、郑码等; 按汉字的音、形结合形成的编码(音形码):如自然码、智能ABC. 输入码在计算机中必须转换成机内码,才能进行存储和处理. (3)汉字字形码 为了将汉字在显示器或打印机上输出,把汉字按图形符号设计成点阵图,就得到了相应的点阵代码(字形码). 全部汉字字码的集合叫汉字字库.汉字库可分为软字库和硬字库.软字库以文件的形式存放在硬盘上,现多用这种方式,硬字库则将字库固化在一个单独的存储芯片中,再和其它必要的器件组成接口卡,插接在计算机上,通常称为汉卡. 用于显示的字库叫显示字库.显示一个汉字一般采用。
2.编码的编码常识
GB编码标准中,比较常用的是GB2312和GBK两种,GB2312是GBK的一个子集,GB2312编码范围是 0xA1A1 - 0xFEFE ,如果纯粹的 GB2312编码,处理起来是十分简单的,但处理GBK字符集时有些小的提示,先说说GBK编码的标准吧:
GBK 采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。 1. 汉字区。包括:
a. GB 2312 汉字区。即 GBK/2: B0A1-F7FE。收录 GB 2312 汉字 6763 个,按原顺序排列。
b. GB 13000.1 扩充汉字区。包括:
(1) GBK/3: 8140-A0FE。收录 GB 13000.1 中的 CJK 汉字 6080 个。
(2) GBK/4: AA40-FEA0。收录 CJK 汉字和增补的汉字 8160 个。
CJK 汉字在前,按 UCS 代码大小排列;增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。
2. 图形符号区。包括:
a. GB 2312 非汉字符号区。即 GBK/1: A1A1-A9FE。其中除 GB 2312 的符号外,
还有 10 个小写罗马数字和 GB 12345 增补的符号。计符号 717 个。
b. GB 13000.1 扩充非汉字区。即 GBK/5: A840-A9A0。BIG-5 非汉字符号、结构符和“○”排列在此区。计符号 166 个。
3. 用户自定义区:分为(1)(2)(3)三个小区。
(1) AAA1-AFFE,码位 564 个。
(2) F8A1-FEFE,码位 658 个。
(3) A140-A7A0,码位 672 个。
第(3)区尽管对用户开放,但限制使用,因为不排除未来在此区域增补新字符的可能性。
这里有几个小技巧:
一、在php中,字符编码是按所发送的编码为准的,因此使用的就是用户输入的编码,不会自动改变,但在asp中,默认的编码是unicode,这样我们很容易就能得到gbk->unicode的编码对照表,这样即使在毫无基础库的情况下也能很容易的实现gbk到utf-8的转换了;
二、由于GBK是高位最低数值是0x40,即是64,因此,有时候组织一些涉及中文的字串时,分割字符最好用64之前的ascii码,这样在任意情况下替换或分割都不会出现乱码,比较常用的是 ,、;、:、、、,这些字符永远都不会给gb编码添乱。
3.计算机知识:汉字编码的规则
GB2312中的汉字编码规则
2008-07-26 21:56:10
标签:GB2312 汉字编码规则 休闲 职场
01-09区为特殊符号。
16-55区为一级汉字,按拼音排序。
56-87区为二级汉字,按部首/笔画排序。
每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”,第二个字节称为“低位字节”。
“高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上0xA0)。
例如“啊”字在大多数程序中,会以0xB0A1储存。(与区位码对比:0xB0=0xA0+16,0xA1=0xA0+1)。
在附送你个 GB2312 编码表
4.中国的汉字如何编码
所谓编码,是以固定的顺序排列字符,并以此做为记录、存贮、传递、交换的统一内部特征,这个字符排列顺序被称为“编码”。
字库的编码是字库组织的依据,也是文字处理的基础。不同国家和地区有不同的编码标准,和中文字库有关的常见编码有:单字节编码、GB2312-80、GB12345-90、GBK、Unicode编码、ISO10646 / Unicode字符集、GB18030-2000、BIG5编码,下面简要介绍一下:单字节编码 MS Windows:Windows Latin 1(ANSI)MS-DOS:MS-DOS Latin USMacintosh:Macintosh Roman GB2312-80 全称是GB2312-80《信息交换用汉字编码字符集 基本集》,1980年发布,是中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。
P-Windows3.2和苹果OS就是以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码、但兼容支持GB2312。 双字节编码范围:A1A1~FEFEA1-A9:符号区,包含682个符号B0-F7:汉字区,包含6763个汉字 GB码共收录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼音排序,二级字3008,以偏旁排序。
该标准的制定和应用为规范、推动中文信息化进程起了很大作用。 GB12345-90 1990年制定了繁体字的编码标准GB12345-90《信息交换用汉字编码字符集 第一辅助集》,目的在于规范必须使用繁体字的各种场合,以及古籍整理等。
该标准共收录6866个汉字(比GB2312多103个字,其它厂商的字库大多不包括这些字),纯繁体的字大概有2200余个。双字节编码范围:A1A1~FEFEA1-A9:符号区,增加竖排符号B0-F9:汉字区,包含6866个汉字 Unicode编码(Universal Multiple Octet Coded Character Set) 国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对各国文字、符号进行统一性编码。
1991年美国跨国公司成立Unicode Consortium,并于1991年10月与WG2达成协议,采用同一编码字集。目前Unicode是采用16位编码体系,其字符集内容与ISO10646的BMP(Basic Multilingual Plane)相同。
Unicode于1992年6月通过DIS(Draf International Standard),目前版本V2.0于1996公布,内容包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400个,保留20249个,共计65534个。 ISO10646 / Unicode字符集全球可以共享的编码字符集。
UCS-4:组八位 平面八位 行八位 字位八位UCS-2:00组中的00平面是基本多文种平面(BMP),4E00~9FFF 中日韩文字Ext A(CJK):3400~4DB7,共6584字Ext B(CJK):42,807个汉字,在第2平面的0100~A836GBK编码(Chinese Internal Code Specification) GBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。GBK工作小组于1995年10月,同年12月完成GBK规范。
该编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。Windows95/98简体中文版的字库表层编码就采用的是GBK,通过GBK与UCS之间一一对应的码表与底层字库联系。
英文名:Chinese Internal Code Specification中文名:汉字内码扩展规范1.0版双字节编码,GB2312-80的扩充,在码位上和GB2312-80兼容范围:8140~FEFE(剔除xx7F)共23940个码位包含21003个汉字,包含了ISO/IEC 10646-1中的全部中日韩汉字GB18030-2000英文名:Chinese Internal Code Specification 中文名:信息技术 信息交换用汉字编码字符集 基本集的扩充( 2000-03-17发布和实施) 单字节、双字节、四字节编码 向下与国家标准GB 2312信息处理交换码所对应的事实上的内码标准兼容。 在字汇上支持GB 13000.1的全部中、日、韩(CJK)统一汉字字符和全部CJK统一汉字扩充A的字符。
BIG5编码 是目前台湾、香港地区普遍使用的一种繁体汉字的编码标准,包括440个符号,一级汉字5401个、二级汉字7652个,共计13060个汉字。
5.汉字涉及到几种编码
汉字在计算机上的编码主要有三种:输入码、机,内码和输出码,1.用于输入的汉字的编码——输入码(外码)
计算机上输入汉字的方法很多,如键盘编码输入、语音输入、手写输入、扫描输入等,其中键盘编码输入是最容易实现和最常用的一种汉字输入方法。英文等可以用键盘上的每个字母键来输入,而输入汉字则不同,不可能用有限的按键来对应每一个汉字,为了让用户能直接使用英文键盘输入汉字,于是就有了输入汉字时使用的汉字输入码,它一般由键盘上的字母或数字组成,代表某个汉字或某些汉字、词组或句子。当前用于汉字输入的编码方案很多,如区位码、拼音码、王码(五笔字型)、自然码等。
2.用于储存汉字的编码——机内码(内码)
由于汉字输入码的编码方案多种多样,同一个汉字如果采用的编码方案不一样,其输入码就有可能不一样。如果计算机内部存放的是汉字输入码本身,就会造成相同汉字在机内可以用不同的编码表示,这样显然不合理,也给计算机内部的汉字处理增加了难度。为了将汉字的各种输入码在计算机内部统一起来,就引进了汉字的机内码。
3.用于输出汉字的编码——输出码(字型码)
存储在计算机内的汉字在屏幕上显示或在打印机上打印出来时,必须以汉字字形输出,才能被人们所接受和理解。汉字的输出码实际上是汉字的字型码,它是由汉字的字模信息所组成的。汉字是一种象形文字,每个汉字东可以看成一个特定的图形,这种图形可以用点阵、向量等方式表示,而最基本的是用点阵表示。所谓点阵方式,就是将汉字分解成由若干个“点”??组成的点阵字型,将此点阵字型至于网状方格上,每个方各试点阵中的一个“点”。
6.汉字编码有哪些
汉字的编码体系主要有以下几种:
⑴国标、区位、“准国标”
国标是将七千余个汉字以及标点符号、外文字母等,排成一个94行、94列的方阵。方阵中每一横行称为一个“区”,每个区有94个“位”。一个汉字在方阵中的坐标,称为该字的区位码。为了与美标(ASCII)的形象码的范围重合,出现了“国标码”,即将区位码的两个十进制数都加上32,得到该汉字的国标码。
当需要区分国标码和美标码时,出现了“准国标”,即将国标码的两个数字各加上128,而把原来的国标码称为“纯国标”。
⑵GBK
GBK码是GB码的扩展字符编码,对多达两万多的简繁汉字进行了编码。
⑶BIG5码
BIG5码是针对繁体汉字的汉字编码。
⑷HZ码
HZ码是在Internet上广泛使用的一种汉字编码,它是以“纯国标”的中文与美标码混用为方案。
⑸ISO2022CJK码
这是国际标准组织为各种语言字符制定的编码标准。CJK是中、日、韩语的合称。它主要在Internet中使用。
⑹UCS和ISO10646
UCS是由ISO10646定义的,是其他字符集标准的一个超集,保证与其他字符集是双向兼容的,它包含了所有已知语言的字符。
⑺Unicode
Unicode提供一种统一的字符标识方法,它是16位编码的,具备世界各地计算机与出版行业所用字符的全部代码。而且它的产生是以各个国家或国标字符编码为基础的。目前,Unicode在网络、Windows系统和很多大型软件中得到应用。
建议你去图书馆找些书查查,书本会介绍得很清楚的,嘿嘿.
7.汉字编码原则及分类
汉字编码是"现代汉语"的重要组成部分,因此汉字编码,都应完全贯彻《汉语拼音方案》和《现代汉语通用字笔顺规范》的要求,在一个编码方案的原 则下、简便易学、能成为中小学语文的重要的辅助教材及工具,并能够全面进入信息传导等领域,不但编码能在计算机大键盘上使用,也能在小键盘上、电话机、手 机上使用,把手写"汉语速记"和计算机速记融为一体并能快速准确的应用,彻底解决"汉语速记"不具有普及性和难学难记的缺点,并且能进行汉字非键盘输入、支持汉字手写识别、大字符集处理平台与应用软件.。