django发送邮件csv附件乱码问题
问题原因
EmailMultiAlternatives模块发送StringIO的数据作为csv的附件,在windows打开csv文件后乱码,修改如下部分后,附件为utf-8编码格式,所以在windows上打开csv文件是乱码的,因为wps打开默认是按ansi格式解码,但将csv文件在notepad中是可以正常打开的,因为notepad可以按照utf-8解码。
1 | b = make_header([('数据归档.csv', 'utf-8')]).encode('utf-8') |
解决方案
可以在windows上将csv文件转码为asci格式的gbk编码,但是表情会变为问号,还不清楚是什么原因,或者将csv文件在手机wps打开,再另存为xls文件,再发给电脑就好了,但是很麻烦。
后面改了直接使用xlwt生成xls文件的办法,发现生成的文件就是asci格式的了,所以直接就解决了这个问题,我也是醉了。
1 | workboot = xlwt.Workbook(encoding='utf-8') |