笔者正好在做爬虫练习时从豆瓣上爬取《小王子》短评数据存储为CSV格式文件后打开乱码如下图:即使我在程序中设置编码是UTF-8也无济于事
df.to_csv('comments.csv',encoding='utf-8')
后经过查询得知Excel在读取csv的时候是通过读取文件头上的bom来识别编码的,如果文件头无bom信息,则默认按照unicode编码读取。而我们生成csv的平台不一定遵循微软的bom协议,导致如果输出非unicode编码的csv文件(例如utf-8),并且没有生成bom信息的话,Excel自动按照unicode编码读取,就会出现乱码问题了。
所以知道根本问题后就知道如何解决了,比较简单的方式是将该乱码的CSV文件另存为并且重新选择UTF-8编码格式如下图即可: