python-utf-8格式的文件转换gbk格式.docx

上传人:p** 文档编号:1209423 上传时间:2024-11-25 格式:DOCX 页数:2 大小:9.44KB
下载 相关 举报
python-utf-8格式的文件转换gbk格式.docx_第1页
第1页 / 共2页
python-utf-8格式的文件转换gbk格式.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《python-utf-8格式的文件转换gbk格式.docx》由会员分享,可在线阅读,更多相关《python-utf-8格式的文件转换gbk格式.docx(2页珍藏版)》请在第壹文秘上搜索。

1、需求:将utf-8格式的文件转换成gbk格式的文件实现代码如F:defKeadFiIe(fiIePath,CnCOdingutf-8):withcodecs,open(fiIePath1r*,encoding)asf:returnf.readOdefWriteFiIe(fiIePath,u,encodinggbk):withcodecs.pen(fiIePath1w*,encoding)asf:f.write(u)defUTF8_2_GBK(SrC,dst):content=ReadFiIe(SrC,encoding=IHf-8”)WriteFi1.e(dst,content,encoding

2、=gbk)心代码讲解:函数ReadFiIe的第二个参数指定以U1.1.8格式的编码方式读取文件,返回的结果content为Unicode然后,在将UniCode以gbk格式写入文件中。这样就能实现需求.但是,如果要转换格式的件中包含有一些字符并不包含在gbk字符集中的话,就会报错,类似如卜丁UnicodeEncodeError:gbkcodeccan,tencodecharacteru,xa,inposition4813:i1.1.ega1.Bu1.tibytesequence以上的报钳信息的意思是:在将UniCode编码成gbk的时候,不能将UniCodeuxa,编码成Rbke这里,我们需要

3、弄清地gb2312、gbk和gb1.8030三者之间的关系GB2312:6763个汉字GBK:21003个汉字GB18030-2000:27533个汉字GB18030-2005:70244个汉字所以,GBK是GB2312的超集,GB18030是GBK的超集.理清了关系之后,我们进一步改进下代码:defUTF8_2GBK(src,dst):content=ReadFiIe(src,encoding=-utf-8)WriteFiIe(dst,content,CnCeding=gb18030)运行后,发现没有报错,可以正常运行。因为,在GB18030字符集中,可以找到u,xa,对应的字符。此外,还有

4、另外一种实现方案:需要修改下WriIeFiIe方法defWriteFi1.e(fiIePath,u,encoding=gbk):withcodecs.open(fiIePath1w*)asf:.wri1.e(u.encode(encoding,errors=*ignore*)这里,我们将UniCOde编码(encode)成gbk格式,但是注意encode函数的笫二个参数,我们赋值ignore,表示在编码的时候,忽略掉那些无法编码的字符,解码同理。但是,当我们执行后,发现可以成功的将Utf-8格式的文件修改成了ansi格式。但,另外发现生成的文件中,每个行都有一行空行。这里,可以指定以二进制流的形式与文件,修改后的代码如下:1.efWriteFiIe(fiIePath,u,encoding=gbk):withcodecs.open(fiIePath1,wb,)asf:f.write(u.encode(encoding,errors=*ignore*)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 建筑设计

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!