文章·资料 电脑软件 手机软件 网站源码




    本 站 搜 索
   推 荐 文 章        More...
华硕易电脑(ASUS Eee PC 10..
先来段开场白:为了外出携带方便..
Acronis True Image 使用..
  一款可以在Windows下使用..
Norton Ghost 使用详解
一、分区备份   使用Ghost..
    文 章 阅 读 排 行
“啊估文章软件站”网站系..
一、调试测试网站系统时,如何..
关于 Firefox 在中国持续..
亲爱的 Firefox 用户及 Firefox..
向日葵远程控制软件,设置..
向日葵远程控制软件有个人版和..
夸克网盘新用户注册如何获..
夸克网盘,新用户注册如何获得1..
FileZilla Server 设置参考
FileZilla Server 启动界面 ..
PakePlus 构建 APP 需要 Gi..
PakePlus 是一个基于 Rust Taur..
电脑显示器使用 HDMI 数据..
如果电脑显示器使用 HDMI 数据..
ASP/JavaScript:不刷新页..
function GuReturnElement(..
分享几个免费申请 SSL 证..
DigiCert 原 Symantec(赛门铁..
关闭微信的个性化推荐广告
有网友说到,微信的初衷是拉近..
 文 章 信 息
BIG5到GB的转换技术
评论()〗〖留言〗〖收藏
〖文章分类:电脑·手机·网络 / 电脑软件安装·卸载·设置〗〖阅读选项
中文因为数量太多,所以与英文用ASCII码一个字节表示不同,它使用两个字节来
 
表示。通过计算这两个字节,我们可以得到其表示的汉字在中 
 文字库中的位置。读取该位置的若干字节,以获得表示这个汉字的点阵信息。有
 
了这些信息,就可以分别在DOS或WINDOWS中显示该汉字。事实上, 
 在文本文件中保存的就是每个汉字对应的两个字节编码,而显示问题由中文操作
 
系统自动解决。 
    汉字编码并不统一,我们使用的是GB码,而台湾地区使用的是BIG5码。BIG5
 
码文件中保存的是汉字相应的BIG5编码,GB码文件中保存的是汉字 
 相应的GB编码(这也就是“乱码现象”的来由)。所以转换工作的关键是有一个
 
记录每个BIG5编码对应GB编码的码表文件。 
 第一步 制作码表文件 
    BIG5码编码规则是这样的:每个汉字由两个字节构成,第一个字节的范围从
 
0X81-0XFE,共126种。第二个字节的范围分别为0X40-0X7E, 
 0XA1-0XFE,共157种。也就是说,利用这两个字节共可定义出 126 * 157=19
 
782种汉字。这些汉字的一部分是我们常用到的,如一、丁,这些字 
 我们称为常用字,其BIG5码的范围为0XA440-0XC671,共5401个。较不常用的字
 
,如滥、调,我们称为次常用字,范围为 0XC940-0XF9FE,共 
 7652个,剩下的便是一些特殊字符。 
    制作码表文件的原理是这样的:首先将所有的BIG5编码写入一个文件,然后
 
,使用具有BIG5码到GB码转换功能的软件,如地球村、东方快车、 
 四通利方,将文件转换为GB码文件,即得到码表文件。 
    下面的源程序将所有可能的BIG5编码(0XA100-0XFEFF)写入文件“Table.
 
TXT”。 
 //TURBO C++ 3.0 
 #include <Stdio.h> 
 #include <stdlib.h> 
 void main(){ 
 FILE * codefile; 
 int i,j,k; 
 codefile=fopen("table.txt","w+b"); 
 for (i=0xa1;i<=0xfe;I++){
for(j=0x00;j<=0xff;j++){
fwrite(& i,1,1,codefile);
fwrite(& j,1,1,codefile);}
}
fclose(codefile);
return;
}
运行地球村、东方快车或四通利方,将“Table.txt”从BIG5码转换为GB码,

即获得码表文件。
第二步 转换
下面的源程序,将BIG5码文件转换为GB码文件。
//TURBO C++3.0
#include <stdio.h> 
 #include <stdlib.h> 
 void main(){ 
 int que, wei; 
 FILE * sourcefile; 
 FILE * tabfile; 
 FILE * destfile; 
 sourcefile = fopen("big.txt', "r+b"); 
 //BIG5 码文件 
 tabfile = fopen("table.txt", 'r+b"); 
 //码表文件 
 destfile = fopen("gb.txt","w+b"); 
 //转换生成的GB码文件 
 while (!feof(sourcefile)){ 
 fread(& que,1,1,sourcefile); 
 if (feof(sourcefile)){ 
 break; } 
 if (que> =0xa1 && que <=0xfe)
//叛断是否汉字(BIG5编码)
{fread(& wei,1,1,sourcefile);
if (wei<0xa1) wei = wei - 0x40;
if (wei>=0xa1) wei = wei - 0xa1 + 0x7e - 0x40 + 1; 
 fseek(tabfile, 2 * ((que -0xa1) * (0xfe - 0xa1 + 1 + 0x7e - 0x40 + 1 
 
) + wei), SEEK_SET); 
 fread(& que,1,1,tabfile); 
 fread(& wei,1,1,tabfile); 
 fwrite(& que,1,1,destfile); 
 fwrite(& wei,1,1,destfile); 
 } 
 else 
 fwrite(& que,1,1,destfile); //处理英文 
 } 
 fclose(sourcefile); 
 fclose(tabfile); 
 fclose(destfile); 
 return; 
 } 

文章作者:未知  更新日期:2005-10-30
〖文章浏览:〗〖发送文章〗〖打印文章
相关软件 ·Visual Basic:GB码与BIG5码的相互转换 2005-07-07
·阿勇 GB/BIG5/UTF-8 文件编码转换 V1.32019-08-27
〖文章阅读说明〗
·本站大部分文章转载于网络,如有侵权请留言告知,本站即做删除处理。
·本站法律法规类文章转载自[中国政府网(www.org.cn)],相关法律法规如有修订,请浏览[中国政府网]网站。
·本站转载的文章,不为其有效性,实效性,安全性,可用性等做保证。
·如果有什么问题,或者意见建议,请联系[网站管理员]。