Excel转CSV编码完全指南:告别中文乱码

为什么CSV会出现中文乱码?

CSV是纯文本格式,不包含编码信息。当文件在不同系统间传递时,如果编码不匹配就会出现乱码。

常见编码格式

  • UTF-8:国际通用编码,推荐使用
  • GBK/GB2312:Windows中文系统默认编码
  • UTF-8 with BOM:带字节顺序标记的UTF-8

使用在线工具转换

使用Excel转CSV工具

1. 上传Excel文件 2. 选择需要转换的工作表 3. 工具自动输出UTF-8 with BOM编码的CSV 4. 下载CSV文件

优点:自动处理编码,中文不会乱码

编程方式转换

Python方案

import pandas as pd

df = pd.read_excel('data.xlsx')

# UTF-8 with BOM(Excel打开不乱码) df.to_csv('output_utf8_bom.csv', index=False, encoding='utf-8-sig')

# 纯UTF-8 df.to_csv('output_utf8.csv', index=False, encoding='utf-8')

# GBK(Windows记事本打开不乱码) df.to_csv('output_gbk.csv', index=False, encoding='gbk')

JavaScript方案

const XLSX = require('xlsx');

const workbook = XLSX.readFile('data.xlsx'); const csv = XLSX.utils.sheet_to_csv(workbook.Sheets[workbook.SheetNames[0]]);

// 添加BOM标记 const bom = '\uFEFF'; const blob = new Blob([bom + csv], { type: 'text/csv;charset=utf-8' });

如何选择编码?

| 使用场景 | 推荐编码 | 原因 | |---------|---------|------| | 数据库导入 | UTF-8 | 大多数数据库默认UTF-8 | | Excel打开 | UTF-8 with BOM | Excel自动识别编码 | | Windows记事本 | GBK | 记事本默认GBK | | 跨平台交换 | UTF-8 | 国际通用标准 |

总结

选择正确的编码格式是CSV转换的关键。推荐使用UTF-8 with BOM编码,兼顾兼容性和通用性。

Advertisement
Leo Zhang
关于作者Leo Zhang

Excel数据处理工具开发者,专注于在线数据处理工具的开发与优化。