这本来应该是一个很简单的问题,一开始被我想复杂了。弄得绕了很大一个圈。
先说事例:
得到一个big5编码的文本文件,用记事本打开显示为乱码,想转换保存为UTF-8或gb-2312编码文档,就这么回事!
开始以为要用到encode()和decode()进行内码转换后再保存,结果py总是报错……后来发现:
在Python3.x以后,f.read()的文本内容都自动转换为Unicode,文本文档保存为哪种编码,由打开文件的encoding参数决定。
因此,将big5编码的文件(本例:big5.txt)转存为UTF-8编码的文件(本例:UTF8.txt),只需如下操作:
bg=open('big5.txt','r',encoding='big5')
ut=open('utf8.txt','w',encoding='utf-8')
ut.write(bg.read())
bg.close()
ut.close()