收藏 分享(赏)

汉字编码技术研究 论文.doc

上传人:wspkg9802 文档编号:6035558 上传时间:2019-03-25 格式:DOC 页数:11 大小:153KB
下载 相关 举报
汉字编码技术研究 论文.doc_第1页
第1页 / 共11页
汉字编码技术研究 论文.doc_第2页
第2页 / 共11页
汉字编码技术研究 论文.doc_第3页
第3页 / 共11页
汉字编码技术研究 论文.doc_第4页
第4页 / 共11页
汉字编码技术研究 论文.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 科技应用文写作论文汉字编码技术技术研究姓 名:Spring Brother学 号: 所在学院: 专业班级: 指导老师: 日 期:2010-11-22摘要汉字编码是为汉字设计的一种便于输入计算机的代码。由于电子计算机现有的输入键盘与英文打字机键盘完全兼容。因而如何输入非拉丁字母的文字(包括汉字)便成了多年来人们研究的课题。 汉字信息处理系统一般包括编码、输入、存储、编辑、输出和传输。编码是关键。不解决这个问题,汉字就不能进入计算机。GB2312码是中华人民共和国国家汉字信息交换用编码,全称信息交换用汉字编码字符集基本集 ,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用

2、此编码。本文就GB2312码汉字、汉字区位码、汉字内码转换编程实现进行概述。一汉字编码的种类 汉字编码中现在主要用到的有三类,包括GBK,GB2312和Big5。1、GB2312又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。它是一个简化字的编码规范,当然也包括其他的符号、字母、日文假名等,共7445个图形字符,其中汉字占6763个。我们平时说6768个汉字,实际上里边有5个编码为空白,所以总共有6763个汉字。GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示” ,习惯上称第一个字节为“高字节” ,第二个字节为“低字

3、节” 。GB2312中汉字的编码范围为,第一字节0xB0-0xF7(对应十进制为176-247),第二个字节0xA0-0xFE(对应十进制为160-254) 。GB2312将代码表分为94个区,对应第一字节(0xa1-0xfe) ;每个区94个位(0xa1-0xfe) ,对应第二字节,两个字节的值分别为区号值和位号值加32(2OH) ,因此也称为区位码。01-09区为符号、数字区,16-87区为汉字区(0xb0-0xf7) ,10-15区、88-94区是有待进一步标准化的空白区。2、Big5又称大五码,主要为香港与台湾使用,即是一个繁体字编码。每个汉字由两个字节构成,第一个字节的范围从0X81

4、0XFE(即129-255) ,共126种。第二个字节的范围不连续,分别为0X400X7E(即64-126) ,0XA10XFE(即161-254) ,共157种。3、GBK是GB2312的扩展,是向上兼容的,因此GB2312中的汉字的编码与GBK中汉字的相同。另外,GBK中还包含繁体字的编码,它与Big5编码之间的关系我还没有弄明白,好像是不一致的。GBK中每个汉字仍然包含两个字节,第一个字节的范围是0x81-0xFE(即129-254) ,第二个字节的范围是0x40-0xFE(即64-254) 。GBK中有码位23940个,包含汉字21003个。二 .信息交换用汉字编码字符集1.介绍GB2

5、312码是中华人民共和国国家汉字信息交换用编码,全称信息交换用汉字编码字符集基本集 ,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。信息交换用汉字编码字符集是由我国国家标准总局1980年发布,1981年5月1日开始实施的一套国家标准,标准号是 GB 23121980。它是计算机可以识别的编码,适用于汉字处理、汉字通信等系统之间的信息交换。基本集共收入汉字6763个和非汉字图形字符682个。整个字符集分成94个区,每区有94个位。每个区位上只有一个字符,因此可用所在的区和位来对汉字进行编码,称为区位码。 这个码是唯一的,不会有重码字。把换算成十六进制的区位码加上

6、2020H,就得到国标码。国标码加上8080H,就得到常用的计算机机内码。1995年又颁布了汉字编码扩展规范(GBK) 。GBK与GB 23121980国家标准所对应的内码标准兼容,同时在字汇一级支持ISO/IEC106461和GB 130001的全部中、日、韩(CJK )汉字,共计20902字。信息交换用汉字编码字符集和汉字输入编码之间的关系是,根据不同的汉字输入方法,通过必要的设备向计算机输入汉字的编码,计算机接收之后,先转换成信息交换用汉字编码字符,这时计算机就可以识别并进行处理;汉字输出是先把机内码转成汉字编码,再发送到输出设备。GB 2312标准共收录6763个汉字,其中一级汉字37

7、55个,二级汉字3008个;同时,GB 2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。 GB 2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。 对于人名、古汉语等方面出现的罕用字,GB 2312不能处理,这导致了后来GBK及GB 18030汉字字符集的出现。2分区表示GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。 01-09区为特殊符号。 16-55区为一级汉字,按拼音排序。 56-87区为二级汉字,按部首/笔画排序。 10-15区及8

8、8-94区则未有编码。3字节结构在使用 GB2312 的程序中,通常采用 EUC 储存方法,以便兼容于 ASCII。浏览器编码表上的“GB2312” ,通常都是指“EUC-CN”表示法。 每个汉字及符号以两个字节来表示。第一个字节称为“高位字节” (也称“区字节) ”,第二个字节称为“低位字节” (也称“位字节” ) 。 “高位字节”使用了 0xA1-0xF7(把 01-87 区的区号加上 0xA0), “低位字节”使用了0xA1-0xFE(把 01-94 加上 0xA0)。 由于一级汉字从 16 区起始,汉字区的“高位字节”的范围是 0xB0-0xF7, “低位字节”的范围是 0xA1-0x

9、FE,占用的码位是 72*94=6768。其中有5 个空位是 D7FA-D7FE。 GB2312 将代码表分为 94 个区,对应第一字节(0xa1-0xfe) ;每个区 94 个位(0xa1-0xfe) ,对应第二字节,两个字节的值分别为区号值和位号值加 32(2OH) ,因此也称为区位码。01-09 区为符号、数字区,16-87 区为汉字区(0xb0-0xf7) ,10-15 区、88-94 区是有待进一步标准化的空白区。GB2312 将收录的汉字分成两级:第一级是常用汉字计 3755 个,置于 16-55 区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计 3008 个,置于56-

10、87 区,按部首/笔画顺序排列。故而 GB2312 最多能表示 6763 个汉字。GB2312 的编码范围为 2121H-777EH,与 ASCII 有重叠,通行方法是将 GB 码两个字节的最高位置 1 以示区别。图中位于 ASCII 区中的虚线区域即为原 GB2312 编码区域,右下角实线区域为平移后的GB2312 编码区域。三编程实现程 序 主 界 面 :所 用 程 序 :Visual Basic编程原理:上面的单字转换,通过汉字输入框的change事件,计算得出区位码的输入框内的区位码;通过区位码输入框的change事件,计算得出汉字内码的输入框内的汉字内码;通过汉字内码输入框的chan

11、ge事件,计算得出汉字输入框的汉字。三个输入框循环转换,所以在任何一个输入框输入一个数值,都会求出其他两个输入框的内容。主要代码:Private Sub hanzi_Change()汉字 - 区位码转换Dim han, code As IntegerDim s, pIf hanzi.Text = “ Then 清空相关数值incode.Text = “spcode.Text = “Image1.Visible = TrueElseIf Asc(hanzi.Text) 1 Then 屏蔽输入数据为字符的显示结果Elsehan = CLng(“&H“ & Hex(Asc(hanzi.Text)s

12、= han 256 - 160 求区码p = han Mod 256 - 160 求位码code = s * 100 + p 求区位码spcode.Text = codeImage1.Visible = Falsetempsolo.Text = hanzi.TextEnd IfEnd IfEnd SubPrivate Sub incode_Change()内码 - 汉字的转换Dim icode, a, bDim cona = incode.Textb = Val(“&H“ & a)If b 0 Then 防止数据计算出错hanzi.Text = “Elseicode = bt1.Text =

13、icode 观察数据hanzi.Text = Chr(icode)End IfEnd SubPrivate Sub spcode_Change()区位码 -内码转换Dim innercode, hexcode, code, sss, ppp, ss, pp As IntegerIf spcode.Text = “ Or Val(spcode.Text) 94 Or d 94) Or (c 0 Or d 0) Theninnercode = “非汉字“Elsesss = Hex(c + 32 + 128)ppp = Hex(d + 32 + 128)innercode = sss + pppEn

14、d Ifmultiout.Text = multiout.Text & a & “ “ & CStr(c) & CStr(d) & “(“ & innercode & “)“ & “, “Elsemultiout.Text = multiout.Text & a & “ “ & CStr(c) & CStr(d) & “, “End IfI = I + 1LoopEnd Sub菜单栏其他功能:1.批量转换输入的载入(.txt文件)的载入和保存2.可能会用到的系统工具的调用3软件帮助信息等参考文献美Julia编著 Visual Basic 6.0高级编程 清华大学出版社 出版日期: 2003-12-01郑有增、许文宪主编Visual Basic程序设计清华大学出版社2005年1月百度百科:汉字编码http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报