我爱黑客网首页 设为首页
加入收藏
联系我们
 首 页  技术文章 下载中心 站长学院 交流论坛
 软件:
 文章:        教程:
 推荐: 我爱黑客网论坛
 
 
 
 
   
黑软: Q Q 软件 木马间谍 探嗅监听 溢出攻击 加密解密 漏洞扫描 脚本注入 远程控制 综合利用 聊天工具  
 
技术文章: 爱黑新闻 | 黑客攻防 | 网络技术 | 程序设计 | 系统操作 | 本站动态 | 业界动态 | 安全公告 | 病毒公告 | 八卦黑客
 
 
您当前的位置:我爱黑客 -> 程序设计 -> C++ -> C++通信 -> 文章内容  
栏目导航
· C++综合 · C++通信
· C++视图 · C++图象
· C++系统 · C++多媒体
· C++界面 · C++文件
· C++数据库 · C++网络
热门文章
· ListView的排序
· 用C++ Builder创建组合..
· BCB中派生VCL类及动态..
· 使用C++ Buider制作自..
· 在BCB中使用VCL控件数..
· 在C++Builder中使用De..
· 在BCB中使用VCL控件数..
· 让TRichEdit支持BIG5内..
· TRichEdit右键滚屏代码..
· C++Builder中实现控件..
· C++ Builder中保持控件..
· C++ Builder创建组件探..
相关文章

查看更多与让TRichEdit支持BIG5内码相关内容

让TRichEdit支持BIG5内码
作者:幽火  来源:www.5ihack.com  发布时间:2007-1-8 17:21:56  发布人:ghostfire

减小字体 增大字体

  大家好,现在的软件如:Foxmail等软件,都有显示GB内码和BIG5内码的功能。我经过一段时间的摸索,发现了实现这种功能的方法。现在就来介绍给大家。首先,要给大家介绍一下这两种内码:大家都知道英文的ASCII码是用一个字节来表示的,但中文因为文字数量太多,所以只能用两个字节来表示。实际上我们常见的文本文件中保存的就是每个汉字对应的内码,而汉字的内码就是该汉字在中文字库中的逻辑位置。在中文字库中,该逻辑位置存放了这个汉字的图像信息,有了这些图像信息,就可以显示该汉字了,当然在现在的Windows中这个显示的过程是由操作系统自动来完成的,我们不必去关心它。但是由于一些历史上的原因,汉字的内码方案有两种,我们大陆地区使用的是GB码,而台湾省却使用的是BIG5码。GB码文件中保存的是汉字相应的GB编码,BIG5码文件中保存的是汉字相应的BIG5编码。而两种内码又都对应于各自的字库文件,所以当我们使用GB内码的简体中文Windows来看BIG5内码的文件时,就会产生常说的乱码现象。

  由于我们是要显示BIG5码的汉字,所以再介绍一下BIG5码的编码方案:每个汉字由两个字节构成,第一字节的范围从0X81-0XFE,第二个字节的范围分别为0X40-0X7E,0XA1-0XFE。好了,知道了汉字显示的原理和BIG5码的编码方案,就可以很容易让TRichEdit支持BIG5码了。

  第一步:找一个用于内码转换的码表文件。

  我用的是CCDOS97里带的CCDOS.TAB,这个文件的大小为45840个字节。如果你没有这个文件,可以给我来信(cnprogram@netease.com)我会寄一个给你。当然你还可以根据BIG5码的编码方案自己做一个,这里就不多说了。

  第二步:把码表文件转换成数组文件。见下面的程序。

  用BCB建立一个控制台应用程序。把它存为TABTOHEX.BPR和TABTOHEX.CPP。然后在TABTOHEX.cpp中添加以下代码:

  #pragma hdrstop
#include <condefs.h>
#include"stdio.h"
#include"stdlib.h"
#pragma argsused
int main(int argc, char **argv)
{
   FILE *tab;
   FILE *hex;
   int i=0;
   unsigned int ch;
   tab=fopen("ccdos.tab","rb");//打开CCDOS.TAB文件
   hex=fopen("tab.h","wb");
   fputs("unsigned char tab[45840]={",hex);
   fprintf(hex,"\n");
   for(i=0;i<45840;i++)
   {
     if(i%20==0)
     {
       fprintf(hex,"\n");
     }
     ch=fgetc(tab);
     fprintf(hex,"0x%x\x2c",ch);//把码表文件转换为数组文件
   }
   fputs("0xff};",hex);
   fcloseall();
   return 0;
}

查看更多与让TRichEdit支持BIG5内码相关内容

[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:
下一篇文章:
      TRichEdit右键滚屏代码       在BCB中使用VCL控件数组2
∷相关文章评论∷   (评论内容只代表网友观点,与本站立场无关!) [发表评论]
 
 
 
 
晋ICP备05008232   维护网络安全、传播安全技术才是我们的目标! 
 
关于本站 - 网站帮助 - - 下载声明 - 友情连接 -网站地图