首页 
资讯中心 业内活动 行业人物 网站运营 站长商城 精品学院 站外休闲 关注汶川
特别专题 | 行业新闻 | 人物访谈 | 专栏作家 | 求职招聘 | 行业公司 | 网站名录 | 好站推荐 | 站长工具 | 站长大会
·包头首届站长大会 ·我区网站备案通道
·企业网站评比大赛 ·本站开展IDC托管
·内蒙古精品网址站 ·10秒即可成为写手
   当前位置:内蒙古IT实验室 内蒙古互联网实验室 内蒙古站长 >> 精品学院 >> 网络编程 >> ASP编程 >> 浏览文章
GB码和BIG5码的互换技术
作者:未知 来源:互联网 收藏: 投稿 互动问吧

    中文与英文用ASCII码一个字节表示不同,它使用两个字节来表示。事实上,在文本文件中保存的就是每个汉字对应的两个字节编码,而显示问题由中文操作系统自动解决。
汉字编码并不统一,我们使用的是GB码,而台湾地区使用的是BIG5码。BIG5码文件中保存的是汉字相应的BIG5编码,GB码文件中保存的是汉字相应的GB编码。所以转换工作的关键是有一个记录每个BIG5编码对应GB编码的码表文件。
GB码编码规则是这样的:每个汉字由两个字节构成,第一个字节的范围从0XA1-0XFE,共96种。第二个字节的范围分别为0XA1-0XFE,共96种。利用这两个字节共可定义出 96 * 96=8836种汉字。实际共有6763个汉字。
BIG5码编码规则是这样的:每个汉字由两个字节构成,第一个字节的范围从0X81-0XFE,共126种。第二个字节的范围分别为0X40-0X7E,0XA1-0XFE,共157种。也就是说,利用这两个字节共可定义出 126 * 157=19782种汉字。这些汉字的一部分是我们常用到的,如一、丁,这些字我们称为常用字,其BIG5码的范围为0XA440-0XC671,共5401个。较不常用的字,如滥、调,我们称为次常用字,范围为 0XC940-0XF9FE,共7652个,剩下的便是一些特殊字符。
制作码表文件的原理是这样的:首先将所有的GB编码写入一个文件,然后,使用具有GB码到BIG5码转换功能的软件,如UCDOS下的CONVERT.EXE,将文件转换为BIG5码文件,即得到码表文件。
下面的程序可将全部国标码写入文件gb.txt(以下全部程序用foxpro书写,可很容易的转换成其他语言)

fp = fopen("gb.txt",2)
for i=161 to 247
for j=161 to 254
=fwrite(fp,chr(i)+chr(j))
next
=fwrite(fp,chr(13)+chr(10))
next
=fwrite(fp,chr(26))
=fclose(fp)

文件的组织形式:行对应编码的第一字节,列对应编码的第二字节。使用时请注意编码的偏移量,如汉字“啊”GB编码0xb1a1第一字节0xb1(177)第二字节0xa1(161)所以他应该在文件的第(177-161=16)行第((161-161)*2=0)列。
运行CONVERT.EXE将gb.txt转换成BIG5码的文件,这样就可得到按GB码组织的BIG5码表文件big5.txt。反之亦可得到按BIG5码组织的GB码表文件。

转换的思路是这样的:(用foxpro书写)
首先将码表文件装入数组
fp = fopen("big5.txt")
i = 0
do while feof(fp)
i = i+1
dime dict[i]
dict[i] = fgets(fp)
enddo
=fclose(fp)
其次将待转换的文本装入变量
create cursor temp (mm m)
append blank
append memo mm from textfilename
text = mm
然后扫描文本,替换所有的GB编码
temp = ""
i = 1
do while i < len(text)
ch = substr(text,i,1)
if isascii(ch) && 若是ASCII码
temp = temp+ch
i = i+1
else
ch1 = substr(text,i+1,1)
big5 = substr(dict[asc(ch)-161+1],(asc(ch1)-161)*2+1,2)
temp = temp+big5
i = i+2
endif
enddo
最后将在temp中得到转换后的文本

需要注意的是,在foxpro中数组指针是以1开始,substr函数的起始位>=1。

浏览:  


人支持

发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口
下一篇:没有了
 最新推荐
网智科技诚聘IT精英共创内蒙古IT事业
哀悼地震死难同胞网站变灰色
警方提醒市民:有些捐款救援短信是骗局
网络捐赠成最快方式 支付宝捐赠通道开通
四川汶川发生地震 百度贴吧网友6分钟内播报
紫金山科技杨凤彦经理谈DIY
关于地震的消息最早从那里获得,QQ群?
网站运营专家——黄相如
太极网络董事长高寒冰
内蒙古好网
 相关文章
  • 暂无相关链接
  •  文章评论:
     最新文章
    GB码和BIG5码的互换技术
    使用ASP常见问题解答
    维护 ASP 应用程序的安全
    基础开发入门级:JSP与ASP的比较
    如何把ASP编写成DLL
    用asp自动解析网页中的图片地址
    ASP与数据库应用
    精华 ASP 代码
     编辑推荐
    网智科技诚聘IT精英共创内蒙古IT事业
    哀悼地震死难同胞网站变灰色
    警方提醒市民:有些捐款救援短信是骗局
    网络捐赠成最快方式 支付宝捐赠通道开通
    四川汶川发生地震 百度贴吧网友6分钟内播报
    紫金山科技杨凤彦经理谈DIY
    关于地震的消息最早从那里获得,QQ群?
    网站运营专家——黄相如
    太极网络董事长高寒冰
    内蒙古好网
     热门排行
    哀悼地震死难同胞网站变灰色
    北京市有望在IT行业试行在家办公
    谁来保护弱势站长群体的信息安全?
    IT实验室2007年度网络宣传大事例
    访谈:客齐集员工—内蒙古小伙儿姜丰波
    北方新报做媒 一对网络情侣喜结良缘
    3158商机网与IT实验室08元旦联谊活动MTV
    IT实验室与3158商机网元旦活动
    震撼世界!2008年互联网趋势预测
    邢明:明后两年将是互联网的社区年
     
    孵化网站:
    内蒙古文学网 内蒙古医药网 内蒙古网络广告网 内蒙古旅游在线 内蒙古家居装饰网 内蒙古汽车网 新闻网博客频道 婴幼儿保健网
    内蒙古好网 内蒙古房产网 内蒙古拼客 内蒙古大学生网 内蒙古物流网          
    合作伙伴:
    内蒙古新闻网 图吧 飞普科技 盛开元广告 人间指南 内蒙古商报 乌海在线 互联网实验室 中国网站排名  
    合作媒体:
    DoNews IT中国 站长网 落伍者 中国站长站 AdminTech 内蒙古新闻网 北方新报 内蒙古晨报 内蒙古商报 呼和浩特晚报
    友情链接:
    内蒙古电子杂志网内蒙古第一站BIOS之家子寒热点互联网分享IT每一天山西站长网
    内蒙古动漫电影网阿尔山旅游网山炮摇滚视频网草原论坛IT技术部中国生活指南网呼和浩特人才网
    内蒙古拍易拍信息网串串网站导航站长中国网读书志甘肃IT资讯网九上网导航 罗伊-电子商务
    信息网络安全调查计算机病毒处理中心内蒙信息港内蒙信息网包头热线河套生活网塞外传媒网
    青城之恋包头移动公寓网酷博网内蒙古生活信息呼和浩特餐饮娱乐网包头大学生网7度POP网
    蒙古文化呼和浩特热线媒体网IT动力源牧人部落呼和浩特好评网呼伦贝尔旅游网
    关于本站 - 业务合作 - 广告合作 - 联系站长 - 设为首页 - 加入收藏 - 友情连接 - 雁过留声
    内蒙古IT实验室 版权所有 蒙ICP备05002086
    Copyright(C) 2008 NmgLabs.com All Rights Reserved