用python实现gb与big5码的转换

本文转自:
http://hi.baidu.com/wannachan/blog/item/8a73ae007a599586e950cd92.html

gb码与big5是中国人常用的两种编码集。gb码为大陆使用,big5为香港与台湾使用。每个编码都由2个字符构成,高字节在前,低字节在后。下面我将使用python实现的编码转换的程序向大家作一个介绍。关于编码的一些知识大家可以去网上查找,本人不再赘述。 gb码是大陆使用的编码集。以前使用的为gb-2312编程,它只有常用字,字数有限。后国家制定了新的gbk编码,汉字已经达到了2万多。gbk完全兼容原gb-2312编码,也就是说一个gb2312的编码在gbk上是一模一样的。这里所介绍的转换是以gbk为基础的,因此适用性很广。gbk编码中不仅包括了原gb-2312编码,同时也包括了许多简码的繁体码,同时还有许多的符号与不常用汉字。gbk编码的范围是:高字节从0x81到0xfe,低字节从0x40到0xfe,同时不包括0x7f。这样如果我们将其排成一个矩形,看上去就少了xx7f一根线。
编码的定位
那么如何定位一个gbk码呢?当我们拿到一个编码时,如何判断是不是一个gbk码,如果是gbk码如何定位它的位置呢?
判断一个gbk码应该比较简单,我们只要根据它的有效范围进行判定即可。如:
if 0x81