gbk code can't encode character……gbk code can't decode byte 0xbf/

来源:互联网 发布:中兴网络机顶盒usb 编辑:程序博客网 时间:2024/06/14 22:28

python路上的第一篇,一个技术小白的学习之路,希望能帮到其他小白

最近因要处理大量的文件格式转换,现学现卖开始写python。一路攻坚克难终于写好测试通过却在decode,encode下栽了大跟头。在window下不同地方来的文件的编码格式可能不一样,比如我测试用的脚本用notepad++写的是utf-8,脚本跑得很欢快,等到上阵处理批量文件发现是ansi的编码格式,脚本就崩溃了。各种百度之后得到了很简单的方法,打开读入文件和创建写出文件的时候指定编码格式:

file_in = open('indir', 'r', encoding='gbk')
file_out = open('outdir','w',encoding='utf-8')

不再报错,完美!

如果有童鞋不用写到文件里的可以对单个字符decode和encode,如a.encode("gbk").decode("gbk"),其中encode可以根据要求宽松程度指定第二个参数:

s.decode('utf8')#解码utf8,默认的编码方式是unicode
s.decode('gbk',"ignore")#解码utf8,忽略其中有异常的编码,仅显示有效的编码
s.decode('gbk','replace')#用?替换异常的编码



阅读全文
0 0