解决python保存csv文件Excel打开乱码的问题

文章讲述了在使用Python保存csv文件时遇到的编码问题,当以utf-8编码保存并用Excel打开出现乱码。原因是Excel依赖BOM来识别编码,而utf-8编码无BOM信息。解决方案是改用utf_8_sig编码,添加BOM标志,使Excel能正确识别编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一次用Python保存csv文件出现除英文字母外,其他字符都是乱码的解决方案。

一、问题引入

通过以下语句将数据保存到data.csv文件中,指定编码格式为utf-8。

with open("data.csv", 'w',encoding="utf_8" ,newline='') as fp:
    writer = csv.writer(fp)
    writer.writerows(results)   

用excel打开data.csv出现乱码。
在这里插入图片描述

二、问题分析

  • Excel 读取 csv 文件的时候是通过文件头上的 BOM 来识别编码的,如果文件头无 BOM 信息,则默认按照 Unicode 编码读取。
  • 当使用 utf-8 编码来生成 csv 文件的时候,并没有生成 BOM 信息,Excel 就会自动按照 Unicode 编码读取,就会出现乱码问题。

三、解决方案

因此需要给csv文件带上BOM信息,让Excel能识别到文件的编码格式,此时我们采用带BOM的编码格式uft-8-sig sig 全拼为 signature,即带有签名的 utf-8(UTF-8 with BOM),将原先的编码格式改成uft-8-sig的编码格式。

with open("data.csv", 'w',encoding="utf_8_sig" ,newline='') as fp:
    writer = csv.writer(fp)
    writer.writerows(results)

在这里插入图片描述
参考资料

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值