发信人: zelor()
整理人: zelor(2001-01-03 10:02:22), 站内信件
|
转自CSDN:
关于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码。
-- 生活,就是理想加泡面。 ——张作乐,送你一束玫瑰
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.71.146]
|
|