python写入文件时,使用encoding=‘utf-8’格式编码生成的csv文件中文乱码,如何解决?
一、问题描述
使用‘utf-8’编码写入了某个excel/csv等表格文件,却发现直接使用excel应用程序打开时无法看懂,出现中文乱码得情况。不过,用记事本、notepad++等普通的文本编译器却可读。
二、产生原因
excel软件对于utf-8编程方式只支持有BOM格式的。但是,python编码方式为utf-8是无BOM格式的。因此,当你打开时会出现中文乱码问题。
三、解决方法
把utf-8格式改成utf-8_sig
即可解决。因为utf-8_sig格式代表着有BOM格式的utf-8的编程,excel就可以正常显示中文了。
代码展示:
col = "请使用utf-8_sig格式编码。"
with open(file, 'w', encoding='utf-8_sig', newline='') as f:
csv_writer = csv.writer(f)
csv_writer.writerows(col)