UTF-8编码的CSV如何让Office不显示乱码

本文介绍了如何在使用Python生成CSV文件时,通过添加BOM(ByteOrderMark)确保UTF-8编码被Excel正确识别,避免编码冲突。推荐使用`utf-8-sig`而非常规的`utf-8`来编写CSV文件。

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

UTF-8编码的CSV文件,在Office的Excel中直接打开往往不能正确的识别文件编码,当然,用libreoffice一般是可以正确提示编码并打开的。这样的CSV可能是以这样的方式生成的:

import csv

rows = [
    ['姓名', '住址'],
    ['张三', '李四'],
    # ...
]

with open('test.csv', 'w', encoding='utf-8') as csvfile:
    writer = csv.writer(csvfile)
    for row in rows:
        writer.writerow(row)

这里,主要的问题在于一个有关编码的细节,生成文件的编码需要修改一下,当然并不是说要改成其他的编码,比如GBK等,而是需要使用带有BOM的UTF-8编码,从而可以让Excel等软件可以正确的进行识别。代码如下

import csv

rows = [
    ['姓名', '住址'],
    ['张三', '李四'],
    # ...
]

with open('test.csv', 'w', encoding='utf-8-sig') as csvfile:
    writer = csv.writer(csvfile)
    for row in rows:
        writer.writerow(row)

如代码中所示,只有encoding修改为utf-8-sig就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值