在项目中有遇到了一个问题,原因是客户上传的文件编码不确定,一般是ANSI格式,但我处理的时候必须是utf-8格式,所以,需要把文件的编码进行修改,我用python3进行了修改,代码如下:
import chardet
import codecs
#修改文件格式
def convert(filename,out_enc='utf-8'):
content = codecs.open(filename,'rb').read()
source_encoding = chardet.detect(content)['encoding']
if source_encoding != out_enc:
content = content.decode(source_encoding).encode(out_enc)
codecs.open(filename,'wb').write(content)
这个时候需要用到python的chardet模块,这个模块可以解析出文件的编码,然后就可以对文件解码,之后就以指定的编码进行编码,在写进入,这样就完成了文件编码格式的改变。。。
注意:在这读写的时候都是字节形式的