今天在写python的时候发现了一个问题,用ElementTree解析XML的时,生成的CSV文件用Excel打开的时候出现了乱码的情况
但是用Word或者文本打开的时候就是正常的
原因分析:
此种情况一般是导出的文件编码的问题。在简体中文环境下,EXCEL打开的CSV文件默认是ANSI编码,如果CSV文件的编码方式为utf-8、Unicode等编码可能就会出现文件乱码的情况。
解决方案:
1.写入文件时使用其他编码比如GB18030,以上面代码为例
csv_file = open('SMP2019_ECISA_Dev.csv', 'w', encoding='GB18030')
2.用命令行修改编码方式,进入生成的CSV文件所在的文件夹中,然后输入以下命令
iconv -f UTF8 -t GB18030 源文件.csv >新文件.csv
修改后结果: