计算机中的文字表示方法

上传人:飞*** 文档编号:30693476 上传时间:2018-01-31 格式:DOC 页数:8 大小:54KB
返回 下载 相关 举报
计算机中的文字表示方法_第1页
第1页 / 共8页
计算机中的文字表示方法_第2页
第2页 / 共8页
计算机中的文字表示方法_第3页
第3页 / 共8页
计算机中的文字表示方法_第4页
第4页 / 共8页
计算机中的文字表示方法_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《计算机中的文字表示方法》由会员分享,可在线阅读,更多相关《计算机中的文字表示方法(8页珍藏版)》请在金锄头文库上搜索。

1、 计算机中的文字表示方法一:计算机文字的基本知识 :根源. 计算机里所有的字符(包括数字)最根本是一张张的矢量图片,然后把这些图片存在字库里, (ttf 文件就是字库矢量图文件):存储. 那文字信息是如何交流传递的呢?必须通过存储信息才能够进行交流。存储的话,牵扯一个重要的东西-编码,每一个字符(包括各国国家的字符,当然包括汉字)有一个对应编码的唯一内码,就是存储了。然而同一个字符(例如“中” 字)不同编码对应的内码不一样,Unicode 编码的话在计算机里的存储的十六进制是 “2D4E”,两个字节;国标码存的是“D6D0”,两个字节; utf8 存的是“E4B8AD”三个字节;:显示.那么,

2、我们存储的汉字是如何被调用现实屏幕显示的呢?不同的编码,存储方式,如何找到这个字符的呢?这是通过识别到文本编码后再通过这个字的内码,找到字库中存贮这个字符(其实就是一张图片)的位置,然后显示出来。二:计算机文字的处理1:基本的处理方法.如果我用放大镜看一下,可以看出屏幕上的字是由一个一个的像素点组成的,每一个字符用一组像素点拼接出来,这些像素点组成一幅图像,变成了我们的文字2:字符编码.由于我们的文字中存在着大量的重复字符,而计算机天生就是用来处理数字的,为了减少我们需要保存的信息量,我们可以使用一个数字编码来表示每一个字符,通过对每一个字符规定一个唯一的数字代号,然后,对应每一个代号,建立其

3、相对应的图形,这样,在每一个文件中,我们只需要保存每一个字符的编码就相当于保存了文字,在需要显示出来的时候,先取得保存起来的编码,然后通过编码表,我们可以查到字符对应的图形,然后将这个图形显示出来,这样我们就可以看到文字了,这些用来规定每一个字符所使用的代码的表格,就称为编码表。编码就是对我们日常使用字符的一种数字编号。3:第一个编码表 ASCII 在最初的时候,美国人制定了第一张编码表美国标准信息交换码,简称 ASCII,它总共规定了 128 个符号所对应的数字代号,使用了 7 位二进制的位来表示这些数字。其中包含了英文的大小写字母、数字、标点符号等常用的字符,数字代号从 0 至 127,标

4、准 ASCII 码表如下:标准 ASCII 码表(部分)b6b5b4b3b2b1b0000 001 010 011 100 101 110 1110000 NUL DLE SP 0 P p0001 SOH DC1 ! 1 A Q a q0010 STX DC2 ” 2 B R b r由于 ASCII 出现最早,因此各种编码实际上都受到了它的影响,并尽量与其相兼容。4:扩展 ASCII 编码 ISO8859 美国人顺利解决了字符的问题,可是欧洲的各个国家还没有,比如法语中就有许多英语中没有的字符,因此 ASCII 不能帮助欧洲人解决编码问题。为了解决这个问题,人们借鉴 ASCII 的设计思想,创

5、造了许多使用 8 位二进制数来表示字符的扩充字符集,这样我们就可以使用 256 种数字代号了,表示更多的字符了。在这些字符集中,从 0 - 127 的代码与 ASCII 保持兼容,从 128 到 255 用于其它的字符和符号,由于有很多的语言,有着各自不同的字符,于是人们为不同的语言制定了大量不同的编码表,在这些码表中,从 128 - 255 表示各自不同的字符,其中,国际标准化组织的 ISO8859 标准得到了广泛的使用。在 ISO8859 的编码表中,编号 0 127 与 ASCII 保持兼容,编号 128 159 共 32 个编码保留给扩充定义的 32 个扩充控制码,160 为空格, 1

6、61 -255 的 95 个数字用于新增加的字符代码。编码的布局与 ASCII 的设计思想如出一辙,由于在一张码表中只能增加 95 种字符的代码,所以 ISO8859 实际上不是一张码表,而是一系列标准,包括 14 个字符码表。例如,西欧的常用字符就包含在 ISO8859-1 字符表中。在 ISO8859-7 种则包含了 ASCII 和现代希腊语字符。问题出现了!ISO 的 8859 标准解决了大量的字符编码问题,但也带来了新的问题,比如说,没有办法在一篇文章中同时使用 ISO8859-1 和 ISO8859-7,也就是说,在同一篇文章中不能同时出现希腊文和法文,因为他们的编码范围是重合的。例

7、如:在 ISO8859-1 中 217 号编码表示字符 ,而在 ISO8859-7 中则表示希腊字符 ,这样一篇使用 ISO8859-1 保存的文件,在使用 ISO8859-7 编码的计算机上打开时,将看到错误的内容。为了同时处理一种以上的文字,甚至还出现了一些同时包含原来不属于同一张码表的字符的新码表。5:大字符集的烦恼不管如何,欧洲的拼音文字都还可以用一个字节来保存,一个字节由 8 个二进制的位组成,用来表示无符号的整数的话,范围正好是 0 255。但是,更严重的问题出现在东方,中国,朝鲜和日本的文字包含大量的符号。例如,中国的文字不是拼音文字,汉字的个数有数万之多,远远超过区区 256

8、个字符,因此 ISO 的 8859 标准实际上不能处理中文的字符。通过借鉴 ISO8859 的编码思想,中国的专家灵巧的解决了中文的编码问题。既然一个字节的 256 种字符不能表示中文,那么,我们就使用两个字节来表示一个中文,在每个字符的 256 种可能中,低于 128 的为了与 ASCII 保持兼容,我们不使用,借鉴 ISO8859 的设计方案,只使用从 160 以后的 96 个数字,两个字节分成高位和低位,高位的取值范围从 176-247 共 72 个,低位从 161 254共 94 这样,两个字节就有 72 * 94 = 6768 种可能,也就是可以表示 6768 种汉字,这个标准我们称

9、为 GB2312-80。6768 个汉字显然不能表示全部的汉字,但是这个标准是在 1980 年制定的,那时候,计算机的处理能力,存储能力都还很有限,所以在制定这个标准的时候,实际上只包含了常用的汉字,这些汉字是通过对日常生活中的报纸,电视,电影等使用的汉字进行统计得出的,大概占常用汉字的 99%。因此,我们时常会碰到一些名字中的特殊汉字无法输入到计算机中的问题,就是由于这些生僻的汉字不在 GB2312 的常用汉字之中的缘故。由于 GB2312 规定的字符编码实际上与 ISO8859 是冲突的,所以,当我们在中文环境下看一些西文的文章,使用一些西文的软件的时候,时常就会发现许多古怪的汉字出现在屏

10、幕上,实际上就是因为西文中使用了与汉字编码冲突的字符,被我们的系统生硬的翻译成中文造成的。不过,GB2312 统一了中文字符编码的使用,我们现在所使用的各种电子产品实际上都是基于 GB2312 来处理中文的。GB2312-80 仅收汉字 6763 个,这大大少于现有汉字,随着时间推移及汉字文化的不断延伸推广,有些原来很少用的字,现在变成了常用字,例如:朱镕基的“镕”字,未收入 GB2312-80,现在大陆的报业出刊只得使用(金+容)、(金容)、(左金右容)等来表示,形式不一而同,这使得表示、存储、输入、处理都非常不方便,而且这种表示没有统一标准。为了解决这些问题,全国信息技术化技术委员会于 1

11、995 年 12 月 1 日汉字内码扩展规范。GBK 向下与 GB2312 完全兼容,向上支持 ISO 10646 国际标准,在前者向后者过渡过程中起到的承上启下的作用。GBK 亦采用双字节表示,总体编码范围为 8140-FEFE 之间,高字节在 81-FE 之间,低字节在 40-FE 之间,不包括7F。在 GBK 1.0 中共收录了 21886 个符号,汉字有 21003 个。GBK 共收入 21886 个汉字和图形符号,包括:* GB2312 中的全部汉字、非汉字符号。* BIG5 中的全部汉字。* 与 ISO 10646 相应的国家标准 GB13000 中的其它 CJK 汉字,以上合计

12、20902个汉字。其它汉字、部首、符号,共计 984 个。而微软公司自 Windows 95 简体中文版开始支持 GBK 代码,但目前的许多软件都不能很好地支持 GBK 汉字。GBK 编码区分三部分:* 汉字区 包括GBK/2 :OXBOA1-F7FE, 收录 GB2312 汉字 6763 个,按原序排列;GBK/3 :OX8140-AOFE,收录 CJK 汉字 6080 个;GBK/4 :OXAA40-FEAO,收录 CJK 汉字和增补的汉字 8160 个。* 图形符号区 包括GBK/1 :OXA1A1-A9FE,除 GB2312 的符号外,还增补了其它符号GBK/5 :OXA840-A9A

13、O,扩除非汉字区。* 用户自定义区即 GBK 区域中的空白区,用户可以自己定义字符。GB18030 是最新的汉字编码字符集国家标准, 向下兼容 GBK 和 GB2312 标准。 GB18030 编码是一二四字节变长编码。一字节部分从 0x00x7F 与 ASCII 编码兼容。二字节部分, 首字节从 0x810xFE, 尾字节从 0x400x7E 以及 0x800xFE, 与 GBK 标准基本兼容。四字节部分, 第一字节从 0x810xFE, 第二字节从 0x300x39, 第三和第四字节的范围和前两个字节分别相同。6:不一样的中文中文的问题好像也解决了,且慢,新的问题又来了。中国的台湾省也在使

14、用中文,但是由于历史的原因,那里没有使用大陆的简体中文,还在使用着繁体的中文,并且他们自己也制定了一套表示繁体中文的字符编码,称为 BIG5,不幸的是,虽然他们的也使用两个字节来表示一个汉字,但他们没有象我们兼容 ASCII 一样兼容大陆的简体中文,他们使用了大致相同的编码范围来表示繁体的汉字。天哪! ISO8859 的悲剧又出现在同样使用汉字的中国人身上了,同样的编码在大陆和台湾的编码中实际上表示不同的字符,大陆的玩家在玩台湾的游戏时,经常会遇到乱码的问题,问题根源就在于,大陆的计算机默认字符的编码就是 GB2312, 当碰到台湾使用 BIG5 编码的文字时,就会作出错误的转换。由于历史和文

15、化的原因,日文和韩文中也包含许多的汉字,象汉字一样拥有大量的字符,不幸的是,他们的字符编码也同样与中文编码有着冲突,日文的游戏在大陆上一样也会出现无法理解的乱码。中文之星,南极星,四通利方就是用于在这些编码中进行识别和转换的专用软件。7:新希望 UTF-8 为了尽可能与现有的软件和硬件相适应,美国人又制定了一系列用于传输和保存 Unicode 的编码标准 UTF,这些编码称为 UCS 传输格式码,也就是将 UCS 的编码通过一定的转换,来达到使用的目的。常见的有 UTF-7,UTF-8 ,UTF-16 等。其中 UTF-8 编码得到了广泛的应用, UTF-8 的全名是 UCS Transfor

16、mation Format 8, 即 UCS 编码的 8 位传输格式,就是使用单字节的方式对 UCS 进行编码,使 Unicode 编码能够在单字节的设备上正常进行处理。实际上,ASCII 字符用 UTF-8 来表示后,与 ASCII 是完全一样的,美国人又近水楼台的把自己的问题解决了。但其他的编码就没有这么幸运了突破障碍 - Unicode 与本地编码的转换UTF-8 编码解决了字符的编码问题,又可以在现有的设备上通行,因此,得到了广泛的使用.8:Tomcat 中的中文问题在 Tomcat 中,经常遇到取回客户端提交的信息是乱码的问题。提交表单的时候,HTML 页面的 Form 标签会使情况变得更为复杂。浏览器的编码方式取决于当前页面的编码设定,对 Form 标签也照此处理。这意味着如果 ASCII 格式的 HTML 页面用 ISO-8859-1 编码,那么用户在此页面中将不能提交中文字符。所以,如果你的页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号