数力
指南价格

CSV 用 Excel 打开中文乱码怎么办?

更新于 2026-09-29 · 阅读约 5 分钟

简短回答

乱码不是文件坏了,而是编码没对上。CSV 文件里只有文字的字节,并不记录这些字节该按哪种编码来读。国内系统导出的 CSV 最常见的是 UTF-8 和 GBK 两种,Excel 双击打开时只会按其中一种读,读错了,中文就变成乱码。

最稳妥的解决方法:在 Excel 里用「数据 → 从文本/CSV」导入,在「文件原始格式」里选 65001: Unicode (UTF-8),还是乱码就改选 936: 简体中文(GB2312),预览正常后再加载。乱码状态下不要保存文件,否则原来的文字可能再也恢复不了。

为什么会乱码

同一个汉字,在不同编码里存成的字节不一样:「商」在 UTF-8 里是 3 个字节,在 GBK 里是 2 个字节。用错的编码去读,字节就被错误地拆开、重新组合,拼出另一串毫不相干的字符,这就是乱码。

Windows 中文版的 Excel 双击打开 CSV 时,默认按 GBK 读取;只有文件开头带着一个叫 BOM 的标记,它才知道要按 UTF-8 读。所以最常见的情况是:文件是不带 BOM 的 UTF-8,Excel 却把它当成了 GBK。Mac 版 Excel 更严格:GBK 文件和不带 BOM 的 UTF-8 文件,双击打开都会乱码。

看乱码的样子,就知道是哪种编码

下表是同一份超市销售数据的两个表头「商品名称」「商品货号」,在不同编码、不同打开方式下的真实显示结果:

文件编码打开方式「商品名称」显示为「商品货号」显示为
UTF-8(不带 BOM)Windows 中文版 Excel 双击鍟嗗搧鍚嶇О鍟嗗搧璐у彿
UTF-8(不带 BOM)Mac 版 Excel 双击ÂïÜÂìÅÂêçÁß∞ÂïÜÂìÅË¥ßÂè∑
GBKMac 版 Excel 双击…Ã∆∑√˚≥∆…Ã∆∑ªı∫≈
GBK按 UTF-8 读取的软件��Ʒ������Ʒ����
UTF-8(带 BOM)Windows / Mac 版 Excel 双击商品名称 ✓商品货号 ✓
数据来源:数力示例数据「超市销售示例数据」的表头,按对应编码实际转换得到。

在 Excel 里怎么解决

方法一:用「从文本/CSV」导入(Windows,推荐)

  1. 1打开一个空白工作簿,点「数据」选项卡 →「从文本/CSV」。
  2. 2选中 CSV 文件,点「导入」。
  3. 3在预览窗口顶部的「文件原始格式」里选 65001: Unicode (UTF-8);如果预览还是乱码,改选 936: 简体中文(GB2312)。
  4. 4预览中文正常后,点「加载」。

适用于 Excel 2016 及以上版本和 Microsoft 365。订单号这类长编号如果被识别成了数字,在这一步点「转换数据」,把那一列的类型改成「文本」。

方法二:用记事本转存为带 BOM 的 UTF-8(Windows)

  1. 1右键 CSV 文件 →「打开方式」→「记事本」。记事本能自动识别 UTF-8 和 GBK,中文应该显示正常。
  2. 2点「文件 → 另存为」,把底部的「编码」改成「带有 BOM 的 UTF-8」,保存。
  3. 3之后再双击,用 Excel 打开就正常了,发给别人也不会乱码。

几百 MB 的大文件用记事本打开会很慢,甚至卡住,这种情况用方法一。

方法三:Mac 版 Excel

不要双击打开。在 Excel 里点「文件 → 导入」,选择「CSV 文件」,在文本导入向导的「文件原始格式」里选 UTF-8;如果还是乱码,改选简体中文(GB 18030)。

从源头避免:导出时就选对编码

  • 导出界面如果有「编码」选项,给 Excel 用的文件选「UTF-8(带 BOM)」或 GBK。
  • 用 Python 导出时,把编码写成 utf-8-sig,它会在文件开头加上 BOM:
df.to_csv("销售数据.csv", index=False, encoding="utf-8-sig")

在数力里

在数力里:打开就是对的

数力导入 CSV 时,会先读文件开头,自动判断它是 UTF-8、GB18030(兼容 GBK)还是 Big5,并在导入前给你看预览。万一判断错了,在右侧「编码」里换一个,预览立刻更新。

导入一份 GBK 编码的销售数据:编码自动识别为 GB18030,中文商品名直接进透视表(录屏 · 20 秒)
  1. 1新建分析,把 CSV 文件拖进窗口,Excel 文件(.xlsx / .xls)也可以。
  2. 2看预览:中文显示正常,就点「确认」。编号这类列可以在这里指定为「文本」,不会变成科学计数法。
  3. 3要把结果交给用 Excel 的同事?从数力导出的 CSV 自带 BOM,对方双击打开也不会乱码。
数力的导入预览:一份 GBK 编码的超市销售数据,编码被自动识别为 GB18030,收银员名称、商品名称等中文列全部显示正常
一份 GBK 编码的销售数据,数力自动选中了 GB18030,中文显示正常。
免费下载数力Windows / macOS · 数力AI 免费使用,无需注册

常见问题

为什么同一个 CSV,别人电脑上打开正常,我这里却乱码?
文件本身没变,变的是打开它的软件。Windows 和 Mac 版的 Excel、不同的系统语言,双击打开时默认按不同的编码读取。用上面的「从文本/CSV」导入并手动选编码,在哪台电脑上结果都一样。
怎么知道文件是 UTF-8 还是 GBK?
最简单的办法是用 Windows 的记事本打开,右下角状态栏会显示编码:「UTF-8」「带有 BOM 的 UTF-8」或「ANSI」(在中文系统里就是 GBK)。也可以对照上面的表格,看乱码的样子来判断。
订单号、身份证号变成了 1.23E+17,后几位还变成了 0,也是编码问题吗?
不是。这是 Excel 把长编号当成了数字:Excel 的数字只保留 15 位有效数字,超出的部分会变成 0,保存后就无法恢复。导入时把这一列的类型设成「文本」即可,方法一的「转换数据」和数力的导入预览都可以设置。
所有内容都挤在第一列里,没有分开,怎么办?
这是分隔符的问题,和编码无关:文件可能用的是分号、Tab 或竖线,而不是逗号。用「从文本/CSV」导入时可以选择分隔符;数力的导入预览里也能直接切换逗号、分号、Tab 和竖线。
用 WPS 打开也乱码怎么办?
原因相同。在 WPS 表格里用「数据 → 导入数据」导入 CSV,在导入步骤中选择文件的编码(UTF-8 或 GBK),思路和 Excel 的方法一一样。

现在下载,下份报告交给数力AI

数力AI 免费体验,无需注册

数力是电脑端应用,请在 Windows 或 Mac 上安装

Windows

推荐

Windows 10 / 11(64 位)

下载 .exe

或 下载免安装版 .zip (解压即用)

下载已开始 · 首次打开需 2 步

下载完成后,双击运行安装程序。数力 还在申请微软的软件签名,在那之前 Windows 会把它当作「无法识别的应用」拦一下 —— 这是正常的,按下面两步放行即可,只需一次。(若浏览器提示文件不常下载,选「保留」。)

  1. 1

    点左上角的「更多信息」。

    「Windows 已保护你的电脑」提示,箭头指向「更多信息」
  2. 2

    点「仍要运行」。以后就能直接打开了。

    展开后的提示,箭头指向「仍要运行」按钮

macOS

Apple 芯片(M1 及以上)· macOS 11 或更高

下载 .dmg

下载已开始 · 安装只需 3 步

下载完成后,打开 .dmg 文件,把 数力 拖进「应用程序」,再双击打开。

  1. 1

    首次打开会被拦下 —— 请选择 完成。

    macOS 提示未打开数力,箭头指向「完成」按钮
  2. 2

    打开「系统设置 → 隐私与安全性」,滑动到底部,点「仍要打开」。

    系统设置的隐私与安全性页面,底部有「仍要打开」按钮
  3. 3

    再次确认,点「仍要打开」,按系统提示进行许可。以后就能直接打开了。

    确认对话框,箭头指向「仍要打开」按钮
提示「已损坏」?

打开「终端」粘贴执行:

xattr -dr com.apple.quarantine /Applications/数力.app

下载即表示您已阅读并同意 《服务条款》 与 《隐私政策》。