发信人: 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]
  | 
 
 
 |