VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
如何区别文本是BIG5还是GB?

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

关于GB与BIG5码的判别,没有100%可靠的方法。但是从两个编码系统汉字的分布来看,
还有可以作一定的判断的。 

GB码的编码范围是首字节A1-F7,尾字节A1-FE,而且首字节A1-A9是符号区,AA-AF这
一段没有定义。BIG5码的编码范围是首字节A1-F9,尾字节分两段,分别是40-7E及
A1-FE,首字节A1-A3是符号区,A4-C5是常用汉字区。 

这样我们可以找到几个依据: 

1)尾字节40-7E是BIG5码特有的,可以以此来判别,但是现在GBK在这个码区也定义了
字符,不过这些汉字的使用频度不高,所以仍然可以作为一条依据,但无法保证100%
正确; 

2)首字节A4-A9在GB中为日文假名、希腊字母、俄文字母和制表符,正常文本中很少
出现,AA-AF则根本没有定义,但这个范围却是BIG5码的常用汉字,所以如果文本中
频繁出现这个范围的码,也可以认为是BIG5码。尤其是首字节位于AA-AF之间,尾字
节位于A1-FE的,几乎100%是BIG5码无疑,因为即使在GBK中,这个范围也是没有定
义的。 

为了提高识别的正确率,最好多种判据同时使用。另外还可以通过分析汉字出现的频
率,或查找某些常用的词组来判别。因为做起来比较复杂,就不多说了。 

首字节C6-D7,尾字节A1-FE在GB中属于一级字库,是常用汉字,而在BIG5中,C6-C7没
有明确定义,但通常用来放日文假名和序号,C8-D7属于罕用汉字区。所以如果这个范
围的码出现较多,可以判别为GB码。 
 
 



相关文章

相关软件