| 怎样从二进制流中恢复汉字信息 |
|
| 作者:佚名 文章来源:网络整理 点击数: 更新时间:2007-7-22 18:35:09 |
|
|
p; ‘关闭文件 下面的一段VB程序将二进制数组中的内容恢复成字符,并显示出来。 ‘<程序2> Dim I As Integer, S As String For I = 0 To L – 1 S = S & Chr(X(I)) ‘将二进制数组元素中的内容按ASCII码的对应关系恢复成字符 Next I MsgBox S ‘显示 如果文本文件aa.txt中不包含汉字,那么这段代码会正确显示文本文件的内容;如果aa.txt中包含汉字,那么<程序1>会将一个汉字的两个字节分别存储在数组X的两个元素中,<程序2>认为这两个元素是两个独立的ASCII码,分别对它们使用CHR函数。由于ASCII码超过128的字符在屏幕上不可见,所以aa.txt包含汉字时显示结果不正确。
改进的方法是将一个汉字的两个字节识别成一组,将第一个字节高移8位(乘以28即256),再组合第二个字节,最后统一转换。这样,我们将<程序2>改造成<程序3>。 ‘<程序3> Dim I As Integer, S As String, Tmp As Single I = 0 Do While I <= L - 1 If X(I) <= 128 Then ‘对于普通字符,直接转换 S = S & Chr(X(I)) I = I + 1 Else ‘与下一元素组合起来是一个汉字 Tmp = 256# * X(I) + X(I + 1) S = S & Chr(上一页 [1] [2] [3] 下一页 |
|
| 论文录入:admin 责任编辑:admin |
|
上一篇论文: 电子化政府:发展及其前景
下一篇论文: 基于BCB开发具有身份认证功能的邮件发送程序 |
| 【校园论坛】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |