最近刚开始学python,也同样经常被编码问题困扰。
一开始是编辑器,到终端,再到输入,再到保存的html文件,现在到csv文件。
各种各样的乱码问题,层出不穷,gbk utf-8 unicode byte都快弄烦了。
今天在用scrapy爬智联并且保存到csv文件的时候又出现了中文乱码。
查了一下,一种方法是用文本编辑器,如:Notepad++打开。这个方法虽然有效,但是不治本。
另一种方法是用scrapy自带的序列化导出,FEED_EXPORT_ENCODING = ‘gb2312’,在我这试了无效,不知道什么原因。
后来又查了资料说,对于 CSV 文件,Excel 需要它有一个元信息来说明它的编码,那 CSV 是纯文本文件怎么设置元信息呢?微软就定义了一个自己的格式叫 BOM 头,这个 BOM 头在被其他的表格展示器(比如 Numbers 或者 Libre Office)打开的时候会被忽略,但对 Excel 就很关键。
所以要在写入csv文件的之前添加一行代码加上BOM头:
filename.write(codecs.BOM_UTF8)
python写入csv文件乱码问题
最新推荐文章于 2024-01-30 23:05:43 发布