| 怎样从二进制流中恢复汉字信息 |
| 作者:佚名 文章来源:不详 点击数: 更新时间:2007-9-12 23:36:33 |
|
摘 要:本文介绍了汉字的存储和处理原理,通过几段典型的程序介绍了从二进制流中恢复汉字时常见的问题及解决的办法。
关键词:汉字 处理 编程
我们处理的字符信息,通常是中英文混排的,有时处理不当,会出现汉字不能正常显示的现象。这主要是由于不了解汉字的存储原理和处理原理,以及处理时未考虑汉字的特点造成的。 1 ASCII码和汉字内码 字符被计算机处理时都是以二进制码的形式出现的,即一个字符对应一个8位二进制数。这种二进制码的集合就是所谓的ASCII码。 基本的ASCII码有128个,最高位都是0,对应的十进制数是0-127。键盘上的字符,如英文字母、数字和一些常用符号,使用基本ASCII码部分。如,数字“0”的ASCII码用二进制数表示就是00110000(即十进制数48)。 扩展的ASCII码有128个,最高位都是1,对应的十进制数是128-255。一些制表符和其它符号使用扩展ASCII码部分。 为解决汉字的存储和显示问题,我国制定了国标GB2312,根据GB2312的规定,一个汉字由两个扩展ASCII码组成。这种高位为1的双字节汉字编码就是汉字的机内码,简称为内码。如,汉字“学”的机内码用二进制数表示就是11010001 10100111(即十进制数209和167),用十进制表示就是53671(209×256+167)。 对于字符,计算机存储和处理的是它的ASCII码,对于汉字,计算机存储和处理的是它的内码,即两位ASCII码。如,字符串“0学0”在计算机中存储的内容是00110000 11010001 10100111 00110000。 2 几个处理字符的程序 2.1 将二进制流恢复成正常字符串的VB程序 下面的一段VB程序以二进制方式打开一个文本文件,再将文本文件内容送入一个二进制数组。 ‘<程序1> Dim X() As Byte, L As String Open App.Path & "\aa.txt" For Binary Access Read As #1 ‘以二进制方式打开文本文件aa.txt L = LOF(1) ‘取文本文件字节数 ReDim X(L - 1) ‘重定义二进制数组 Get #1, , X ‘将文件内容读入二进制数组 Close #1   [1] [2] [3] 下一页 |
| 文章录入:admin 责任编辑:admin |
|
上一篇文章: 移动式多媒体数码教室的建构 下一篇文章: 多种数制显示的汇编语言编程实现 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |