Python将utf-8格式文件转换成gbk格式的简单示例
对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧!
需求:将utf-8格式的文件转换成gbk格式的文件 实现代码如下:
代码讲解: 函数ReadFile的第二个参数指定以utf-8格式的编码方式读取文件,返回的结果content为Unicode 然后,在将Unicode以gbk格式写入文件中。 这样就能实现需求。 但是,如果要转换格式的文件中包含有一些字符并不包含在gbk字符集中的话,就会报错,类似如下:
以上的报错信息的意思是:在将Unicode编码成gbk的时候,不能将Unicode u'xa0'编码成gbk。 这里,我们需要弄清楚gb2312、gbk和gb18030三者之间的关系 GB2312:6763个汉字 GBK:21003个汉字 GB18030-2000:27533个汉字 GB18030-2005:70244个汉字 所以,GBK是GB2312的超集,GB18030是GBK的超集。 理清了关系之后,我们进一步改进下代码:
运行后,发现没有报错,可以正常运行。 因为,在GB18030字符集中,可以找到u'xa0'对应的字符。 此外,还有另外一种实现方案: 需要修改下WriteFile方法
这里,我们将Unicode编码(encode)成gbk格式,但是注意encode函数的第二个参数,我们赋值"ignore",表示在编码的时候,忽略掉那些无法编码的字符,
解码同理。 但是,当我们执行后,发现可以成功的将utf-8格式的文件修改成了ansi格式。但,另外发现生成的文件中,每个一行都有一行空行。 这里,可以指定以二进制流的形式写文件,修改后的代码如下: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |