《字符编码.ppt》由会员分享,可在线阅读,更多相关《字符编码.ppt(49页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1字字 符符 编编 码码2提提 纲纲w一一 计算机中字符的表示(计算机中字符的表示(ASCIIASCII码)码)w二二 计算机中中文字符的表示计算机中中文字符的表示3概 述在计算机中,各种信息都是以二进制编码的形式存在在计算机中,各种信息都是以二进制编码的形式存在 不管是文字、图形、声音、动画,还是电影等信息,在计算机中都是以和组成的二进制代码表示计算机之所以能区别这些不同的信息,是因为它们采计算机之所以能区别这些不同的信息,是因为它们采用的编码规则不同用的编码规则不同 比如:同样是文字,英文字母与汉字的编码规则就不同,前者采用单字节的ASCII码,后者采用双字节的汉字内码但随着需求的变化,这
2、两种编码有被统一的但随着需求的变化,这两种编码有被统一的UNICODE码(由码(由Unicode 协会开发的能表示几乎世界上所有书写协会开发的能表示几乎世界上所有书写语言的字符编码标准)所取代的趋势语言的字符编码标准)所取代的趋势一、计算机中字符的表示(ASCII码)wASCII(American Standard Code for American Standard Code for Information InterchangeInformation Interchange,美国标准信息交换码)规定了常用的数字、字符的编码。标准ASCII码采用7位二进制编码,对应的ISO标准为ISO646
3、标准,最多可以表示128个字符。每个字符可以用一个字节表示,字节的最高位为0。5ASCII码表(二进制)高高3位位低低4位位00000101001110010111011100000000NULDLESP0Pp00010001SOHDC1!1AQaq00100010STXDC22BRbr00110011ETXDC3#3CScs01000100EOTDC4$4DTdt01010101ENQNAK%5EUeu01100110ACKSYN&6FVfv01110111BELETB7GWgw10001000BSCAN(8HXhx10011001HTEM)9IYiy10101010LFSUB*:JZjz1
4、0111011VTESC+;Kk11001100FFFS,Nn11111111SIUS/?O_oDEL基本ASCII码字符的分类n显示字符显示字符范围为33126,共94个,指能从键盘输入、可以显示和打印的字符。n控制字符控制字符 范围是032和127,共34个,主要用于控制输入、输出设备。6字符字符ASCII编码编码十进制值十进制值控制字符0000,00000001,1111和0111,11110 90 900110011,0000000000110011,10011001 48485757AZAZ01000100,0001000101010101,10101010 6590a za z01
5、10,00010110,101097122符号其余基本ASCII码字符的内容解读基本ASCII码字符内容w第031号及第127号共33个,为非打印字符,是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等。w第32126号共95个可打印字符,其中第33个(32号)为空格,第4857号为09十个阿拉伯数字;6590号为26个大写英文字母,97122号为26个小写英文字母,第127个(126号)为“”,其余为一些标点符号、运算符号等。从键盘上按键输入从键盘上按键输入“CHINA
6、CHINA”的字串,传送进计的字串,传送进计算机的算机的,则是则是0100001101000011、0100100001001000、0100100101001001、0100111001001110、0100000101000001这五个二进制数字串。这五个二进制数字串。比较比较字符字符ASCIIASCII码值的大小码值的大小 空格空格空格空格标点符号标点符号标点符号标点符号数字数字数字数字大写字母大写字母大写字母大写字母小写字母小写字母小写字母小写字母十进制数字符号的十进制数字符号的ASCIIASCIIASCIIASCII码值码值码值码值与其与其二进制值二进制值二进制值二进制值的区别的区别
7、10ASCIIASCII码表示码表示 vs.vs.二进制表示二进制表示int型数 10000的表示内存存储形式0010011100010000二进制形式0011000100110000001100000011000000110000ASCII形式文本存储形式1 0 0 0 0213+210+29+28+24=8192+1024+512+256+16关于最高位若在该位置若在该位置1 1,可表示一,可表示一些特殊的符号(图形符)些特殊的符号(图形符)w由于ASCII码只用了字节的七个位,最高位并不使用,所以后来又将最高的一个位也编入这套编码码中,成为八个位的延伸ASCII(Extended ASC
8、II)码,这套内码加上了许多外文和表格等特殊符号,成为目前常用的编码。若将传送数据的该位置若将传送数据的该位置1 1,则用于数据传输校验,则用于数据传输校验w虽然标准ASCII码是7位编码,但由于计算机基本处理单位为字节(1byte=8bit),所以一般仍以一个字节来存放一个ASCII字符。每一个字节中多余出来的一位(最高位)在计算机内部通常保持为0(在数据传输时可用作奇偶校验位)。1112关于数据传输的奇偶校验关于数据传输的奇偶校验 在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验奇偶校验,是指在代码传送过程中用来检验是否出现错
9、误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。14ASCII码表基本集(2,10,8,16进制)ASCII码表的扩展集码表的扩展集EASCIIl l扩展扩展ASCIIASCII编码编码(Extended ASCII,(Extended ASCII,延伸美国标准信息交延伸美国标准信息交换码换码)是将基本是将基本ASCIIASCII码由码由7 7位扩充为位扩充为8 8位,表示位,表示256256个字个字符。符。基本基本ASCIIASCII码码
10、:最高位为最高位为0 0,称为基本,称为基本ASCIIASCII码;码;扩充的扩充的ASCIIASCII码:码:最高位为最高位为1 1 1 1,扩充部分编码范围为,扩充部分编码范围为10000000111111111000000011111111,相应的十进制数为,相应的十进制数为128255128255用用ASCIIASCII码码组组成成的的文文件件,称称为为“文文本本文文件件”,其其扩扩展展名名为为.TXT.TXT。1516ASCII码表的扩展集17ASCII码表基本集+扩展集(16进制)Microsoft WindowsIBM PC DOS18二、计算机中中文字符的表示二、计算机中中文字
11、符的表示汉字交换码汉字交换码 又称又称又称又称“国标码国标码国标码国标码”,即,即,即,即GB2312-1980,GB2312-1980,GB2312-1980,GB2312-1980,是中华人民共和国国是中华人民共和国国是中华人民共和国国是中华人民共和国国家标准汉字交换编码。家标准汉字交换编码。家标准汉字交换编码。家标准汉字交换编码。汉字信息在计算机内部也是以二进制方式存放。由于汉字汉字信息在计算机内部也是以二进制方式存放。由于汉字数量多,用一个字节的数量多,用一个字节的128种状态不能全部表示出来,因此在种状态不能全部表示出来,因此在1981年我国颁布的年我国颁布的信息交换用汉字编码字符集
12、信息交换用汉字编码字符集基本集基本集,即准即准GB2312-80方案中规定用两个字节的十六位二进制表示一方案中规定用两个字节的十六位二进制表示一个汉字,每个字节都只使用低个汉字,每个字节都只使用低7位(与位(与ASCII码相同),即有码相同),即有128128=16384种状态。种状态。19二、计算机中中文字符的表示二、计算机中中文字符的表示汉字交换码汉字交换码 由于由于ASCII码的码的34个控制代码在汉字系统中也要个控制代码在汉字系统中也要使用,为不致发生冲突,不能作为汉字编码,使用,为不致发生冲突,不能作为汉字编码,128除除去去34只剩只剩94种,所以汉字编码表的大小是种,所以汉字编码
13、表的大小是9494=8836,用以表示国标码规定的汉字,用以表示国标码规定的汉字6763个个(一级汉字,是最常用的汉字,按汉语拼音字母顺(一级汉字,是最常用的汉字,按汉语拼音字母顺序排列,共序排列,共3755个;二级汉字,属于次常用汉字,个;二级汉字,属于次常用汉字,按偏旁部首的笔划顺序排列,共按偏旁部首的笔划顺序排列,共3008个),数字、个),数字、字母、符号等字母、符号等682个,共个,共7445个。个。20二、计算机中中文字符的表示二、计算机中中文字符的表示汉字交换码汉字交换码 国家标准将每个汉字和图形符号的两个字节分国家标准将每个汉字和图形符号的两个字节分别用两位的别用两位的十进制十
14、进制编码(不足补),前字节的编编码(不足补),前字节的编码称为区码,后字节的编码称为位码,排列在一个码称为区码,后字节的编码称为位码,排列在一个9494行行9494列的二维代码表中,形成列的二维代码表中,形成区位码区位码表。表。如如“保保”字在二维代码表中处于字在二维代码表中处于1717区第区第0303位,位,区位码即为区位码即为17031703D D 。把区位码按把区位码按一定的规则一定的规则转换成的二进制代码叫转换成的二进制代码叫做信息交换码(简称国标码)。做信息交换码(简称国标码)。21二、计算机中中文字符的表示二、计算机中中文字符的表示汉字交换码汉字交换码w国标码并不等于区位码,它是由
15、区位码稍作转换得到,国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,这样就得了一个与国标码有一个相对位的区码和位码,这样就得了一个与国标码有一个相对位置差(置差(20H)的代码;再将这个代码的第一个字节和第)的代码;再将这个代码的第一个字节和第二个字节分别加上二个字节分别加上20H,就得到国标码。,就得到国标码。w如:如:“保保”字的国标码为(字的国标码为(3123)H,它是经过下面的,它是经过下面的转换得到的:转换得到的:w w w国标码很少直接使用。国标码很少直接使用。22GB码简
16、介w国标码(GB)是指1981年我国公布的国家标准信息交换用汉字编码字符集基本集,包含:简化汉字,符号,字母,日文假名,共7445个字符;其中包含了6763个汉字,并分作两级:一级为常用字,3755个,按照拼音排序二级为次常用字,3008个,按照部首排序。23GB码的编码空间w一个字符的国标码由两个部分组成,分别是该字符的区号和位号。wGB码规定共有94个区,每个区中有94个位。编码空间为:94*94=8836 个码位1 9 区是西文字母、数字、日文假名、图形符号1687区是汉字区,其中 16 55 区 是一级汉字(40*94-5=3755个)56 87 区 是二级汉字(32*94=3008个
17、)1015,8894区是用户自定义区24GB码区位示例01区78位25GB码区位示例(续)26GB码区位示例(续)27GB码区位示例(续)28GB码区位示例(续)29二、计算机中中文字符的表示二、计算机中中文字符的表示汉字内码汉字内码 就是汉字在计算机内部所使用的编码。当将汉字通过使就是汉字在计算机内部所使用的编码。当将汉字通过使就是汉字在计算机内部所使用的编码。当将汉字通过使就是汉字在计算机内部所使用的编码。当将汉字通过使用外码输入到计算机中后,计算机为了识别汉字,必须将汉用外码输入到计算机中后,计算机为了识别汉字,必须将汉用外码输入到计算机中后,计算机为了识别汉字,必须将汉用外码输入到计算
18、机中后,计算机为了识别汉字,必须将汉字的外码转换为汉字的内码,以便处理和存储汉字信息。在字的外码转换为汉字的内码,以便处理和存储汉字信息。在字的外码转换为汉字的内码,以便处理和存储汉字信息。在字的外码转换为汉字的内码,以便处理和存储汉字信息。在计算机系统中,通常使用两个字节来表示一个汉字的内码。计算机系统中,通常使用两个字节来表示一个汉字的内码。计算机系统中,通常使用两个字节来表示一个汉字的内码。计算机系统中,通常使用两个字节来表示一个汉字的内码。30二、计算机中中文字符的表示二、计算机中中文字符的表示汉字内码汉字内码 由于国标码不能直接存储在计算机内,为方便计算机内由于国标码不能直接存储在计
19、算机内,为方便计算机内由于国标码不能直接存储在计算机内,为方便计算机内由于国标码不能直接存储在计算机内,为方便计算机内部处理和存储汉字,又区别于部处理和存储汉字,又区别于部处理和存储汉字,又区别于部处理和存储汉字,又区别于ASCIIASCIIASCIIASCII码,将国标码中的每个字码,将国标码中的每个字码,将国标码中的每个字码,将国标码中的每个字节在最高位改设为节在最高位改设为节在最高位改设为节在最高位改设为1 1 1 1,这样就形成了在计算机内部用来进行汉,这样就形成了在计算机内部用来进行汉,这样就形成了在计算机内部用来进行汉,这样就形成了在计算机内部用来进行汉字的存储、运算的编码叫机内码
20、(或汉字内码,或内码)。字的存储、运算的编码叫机内码(或汉字内码,或内码)。字的存储、运算的编码叫机内码(或汉字内码,或内码)。字的存储、运算的编码叫机内码(或汉字内码,或内码)。内码既与国标码有简单的对应关系,易于转换,又与内码既与国标码有简单的对应关系,易于转换,又与内码既与国标码有简单的对应关系,易于转换,又与内码既与国标码有简单的对应关系,易于转换,又与ASCIIASCIIASCIIASCII码码码码有明显的区别,且有统一的标准(内码是惟一的)。有明显的区别,且有统一的标准(内码是惟一的)。有明显的区别,且有统一的标准(内码是惟一的)。有明显的区别,且有统一的标准(内码是惟一的)。31
21、二、计算机中中文字符的表示二、计算机中中文字符的表示汉字内码汉字内码w 国标码是汉字信息交换的标准编码,但因其国标码是汉字信息交换的标准编码,但因其前后字节的最高位为前后字节的最高位为0 0,与,与ASCIIASCII码发生冲突,如码发生冲突,如“保保”字,国标码为字,国标码为3131H H和和2323H H(区位码为(区位码为11031103H H),而西文字符,而西文字符“1 1”和和“#”的的ASCIIASCII码也码也分别为分别为3131H H和和2323H H。w 现假如内存中有两个字节为现假如内存中有两个字节为3131HH和和2323HH,这到,这到底是一个汉字,还是两个西文字符底
22、是一个汉字,还是两个西文字符“1 1”和和“#”?于是就出现了二义性。?于是就出现了二义性。32二、计算机中中文字符的表示二、计算机中中文字符的表示汉字内码汉字内码w 显然,国标码是不可能在计算机内部直接采用的。于显然,国标码是不可能在计算机内部直接采用的。于是,汉字的机内码采用变形国标码。其变换方法为:将国是,汉字的机内码采用变形国标码。其变换方法为:将国标码的每个字节都加上标码的每个字节都加上128(80H),即将每个字节的最高位,即将每个字节的最高位由由0改改1,其余,其余7位不变。或将区码和位码各加位不变。或将区码和位码各加A0H(十进制十进制160)。)。w 如:如:“保保”字的国标
23、码为字的国标码为3123H,前字节为,前字节为00110001B,后字节为,后字节为00100011B,高位分别改,高位分别改1为为10110001B和和10100011B,即为,即为B1A3H,因此,因此,“保保”字的机内码就是字的机内码就是B1A3H。33二、计算机中中文字符的表示二、计算机中中文字符的表示汉字输入码汉字输入码 无论是区位码或国标码都不利于输入汉字,为方便汉字的输入而制定的汉字编码,称为汉字输入码,又称又称“外码外码外码外码”,即即即即各种输入法编码方案各种输入法编码方案各种输入法编码方案各种输入法编码方案。常见的输入法有以下几类:按汉字的排列顺序形成的编码(流水码):如区
24、位码;按汉字的读音形成的编码(音码):如全拼、简拼、双拼等;按汉字的字形形成的编码(形码):如五笔字型、郑码等;按汉字的音、形结合形成的编码(音形码):如自然码、智能ABC。输入码在计算机中必须转换成机内码,才能进行存储和处输入码在计算机中必须转换成机内码,才能进行存储和处理。理。34二、计算机中中文字符的表示二、计算机中中文字符的表示汉字字形码(输出码)汉字字形码(输出码)汉字字形码是对汉字的形状进行二进制编码,主要用来显示或打印汉字,是表示汉字字形的字模数据,常用点阵、矢量函数等方式表示。为了将汉字在显示器或打印机上输出,把汉字按图形符号设计成点阵图,就得到了相应的点阵代码字形码字形码。全
25、部汉字字形码的集合叫汉字字库。汉字库可分为软字库和硬字库。软字库以文件的形式存放在硬盘上,现多用这种方式,硬字库则将字库固化在一个单独的存储芯片中,再和其它必要的器件组成接口卡,插接在计算机上,通常称为汉卡。35二、计算机中中文字符的表示二、计算机中中文字符的表示汉字字形码(输出码)汉字字形码(输出码)用于显示的字库叫显示字库。显示一个汉字一般采用1616点阵或2424点阵或4848点阵。已知汉字点阵的大小,可以计算出存储一个汉字所需占用的字节空间。例:用1616点阵表示一个汉字,就是将每个汉字用16行,每行16个点表示,一个点需要1位二进制代码,16个点需用16位二进制代码(即2个字节),共
26、16行,所以需要16行2字节/行=32字节,即1616点阵表示一个汉字,字形码需用32字节。即:字节数=点阵行数点阵列数/8用于打印的字库叫打印字库,其中的汉字比显示字库多,而且工作时也不像显示字库需调入内存。36二、计算机中中文字符的表示二、计算机中中文字符的表示汉字字形码(输出码)汉字字形码(输出码)可以这样理解,为在计算机内表示汉字而统一的编码方式形成汉字编码叫内码(如国标码),内码是惟一的。为方便汉字输入而形成的汉字编码为输入码,属于汉字的外码,输入码因编码方式不同而不同,是多种多样的。为显示和打印输出汉字而形成的汉字编码为字形码,计算机通过汉字内码在字模库中找出汉字的字形码,实现其转
27、换。例1:已知汉字“春”的国标码为343AH,求其机内码。机内码=区位码+A0A0H=国标码+8080H=343AH+8080H=B4BAH例2:用2424点阵来表示一个汉字(一点为一个二进制位),则2000个汉字需要多少KB容量?(2424/8)2000/1024=140.7KB141KB二、计算机中中文字符的表示二、计算机中中文字符的表示汉字字形码(输出码)汉字字形码(输出码)37二、计算机中中文字符的表示二、计算机中中文字符的表示汉字字形码(输出码)汉字字形码(输出码)38汉字汉字汉字汉字“中中中中”的的的的1616161616161616点阵的字形及字形点阵的字形及字形点阵的字形及字形
28、点阵的字形及字形编码编码编码编码(a a)16161616点阵字形表示点阵字形表示(b b)16161616点阵字形编码表示点阵字形编码表示40三、计算机中其它中文字符集简介三、计算机中其它中文字符集简介wGB2312wGBKwBig5wUnicode汉字是一个大字符集说文解字(东汉)收录9353字玉篇(南朝)收录16,917字广韵(宋代)收字26,194字字汇(明朝)收录33,197字康熙字典(清朝)收录47,043字汉语大字典(1992年)收录超过5.6万字41GBK 码wGBK码是GB-2312的扩展wGBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1 国际标准。
29、wISO 10646 是国际标准化组织 ISO 公布的一个编码标准,即 Universal Multilpe-Octet Coded Character Set(简称 UCS),大陆译为通用多八位编码字符集,台湾译为广用多八位元编码字元集,它与 Unicode 组织的 Unicode 编码完全兼容。ISO 10646.1 是该标准的第一部分体系结构与基本多文种平面。我国 1993 年以 GB 13000.1 国家标准的形式予以认可(即 GB 13000.1 等同于 ISO 10646.1)。42GBK码(续)wISO 10646 是一个包括世界上各种语言的书面形式以及附加符号的编码体系。其中的
30、汉字部分称为“CJK 统一汉字”(C 指中国,J 指日本,K 指朝鲜)。wCJK的中国部分,包括了源自中国大陆的 GB 2312、GB 12345、现代汉语通用字表等法定标准的汉字和符号,以及源自台湾的 CNS 11643 标准中第 1、2 字面(基本等同于 BIG-5 编码)、第 14 字面的汉字和符号。43GBK码的编码空间wGBK 采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,其中 xx7F 为空。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。G
31、B的编码范围:A1A0 F7FE 首字节:A1-F7,尾字节:A0-FE44GBK码的字符分布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 2
32、312 非汉字符号区。即 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)区尽管对用户开放,但限制使用,因为不排除未来在此区域增补新字符的可能性。45BIG5 码wBI
33、G-5 码是通行于台湾、香港地区的一个繁体字编码方案,俗称“大五码”。wBig-5 是一个双字节编码方案,其第一字节在 A0FE 之间,第二字节在 407E 和 A1FE 之间。因此,其第一字节的最高位是 1,第二字节的最高位则可能是 1,也可能是 0。46Big-5码字符分布1.符号 408 个,A140A3FE(实际止于 A3BF,末尾有空白位置)。2.汉字 13053 个,分为常用字和次常用字两部分,各部分中的汉字按笔划部首排列。其中:a.常用字 5401 个,编码位置为 A440C67E。包括台湾教育部颁布的常用国字标准字体表中的全部汉字 4808 个,台湾国中国小教科书常用字 587
34、 个,异体字 6 个。b.次常用字 7652 个,编码位置为 C940F9FE(实际止于 F9D5,末尾有空白位置)。包括台湾教育部次常用国字标准字体表的全部汉字 6341 个,罕用国字标准字体表中使用频率较高的字 1311 个。其余的 A040A0FE、C6A1C8FE、FA40FEFE 为空白区域。一些空白位置,经常被用于用户造字区,而且多存放香港常用字和粤语方言字。47Big-5码字符分布48GB/GBK/Big5比较第一字节范围第二字节范围空位范围第一字节最高位第二字节最高位符号数汉字数Big5A1-F940-7E;A1-FEC6+(A0-FE)(C7-C8)+*10|14081305
35、3GBK81-FE40-7E;80-FE(A1-A7)+(40-A0)(AA-AF)+(A1-FF)(F8-FE)+(A1-FF)10|188321003GB2312A1-F7A1-FE(AA-AF)+(A1-FF)11682676349Unicode码wUnicode编码(Universal Multiple Octet Coded Character Set)w国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对各国文字、符号进行统一编码。1991年美国成立Unicode Consortium,并于1991年10月与WG2达成协议,采用同一编码字集。wUnicode是采用16位编码体系,其字符集内容与ISO10646的BMP(Basic Multilingual Plane)相同。Unicode于1992年6月通过DIS(Draf International Standard)。1996公布的V2.0版包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400个,保留20249个码位。http:/www.cl.cam.ac.uk/mgk25/unicode.html
限制150内