这是去年我在高考后写的一个Delphi库单元。本来想用在我计划中的一个程序里,来实现类似Word里那样繁体和简体转换的功能,可是很可惜,由于贪玩,那个程序一直没完成,所以只有这个单元了。
当时在写这个单元之前,本来以为网上很多,到处搜索,可是搜到的只是一些GB码和BIG5码转换的单元,不是我想要的。一气之下,我看了一些汉字编码的资料以后自己写了这个单元。
先来看看主要的几种汉字编码:
BIG5: 这个是台湾地区用的系统内码,在简体系统上可能会不正常,而且也不是我们想要转换的类型,所以暂且不谈。
GB2312: 这个是中华人民共和国国家标准汉字信息交换用编码,收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。其中汉字以外的图形字符 682 个,汉字 6763 个。是我们最常用的编码。
GBK:这又是一个汉字编码标准,全称《汉字内码扩展规范》(GBK),它向下与 GB 2312 编码兼容,向上支持 ISO 10646.1 国际标准,是前者向后者过渡过程中的一个承上启下的标准。不但包含了GB2312的所以汉字,而且还包含了繁体等内容。
所以我们要实现的就是GB2312和GBK内码之间的转换。由于GBK中汉字的繁体和简体编码之间没有联系,所以我们只能列出一张表格,将每个字的繁体和简体编码对应起来(如果有的话)。然后对与要转换的汉字,通过查表法来实现繁简转换。查表法就是一般的搜索了,为了加快速度,我先将编码排序,然后用二分法查找。
具体方法就这样了,现在主要的就是这张表格是如何来的了,当然不能人工一个个写了,我用的一个比较偷懒的方法就是先编程生成所有简体汉字,然后复制到Word里面,呵呵,用Word的繁简转换功能,马上就得到所以汉字的表了,然后再删掉一些简繁一样的(就是没有繁体的字)。最后这张表格就出来了,然后加工一下就成了一个单元了。
这个单元(GBK.pas)包含了两个函数,分别把繁体字符串转换为简体,和把简体字符串转换为繁体。
这个博客好像不支持附件上传的,有需要的各位可以给我留言,或者发Email给我。
我的EMAIL是linle_1987@163.com

