为什么 CSV 在 Excel 中显示乱码

乱码背后的编码混淆问题,以及三种解决方法。

作者 Jenna, 网页设计,Ikonik Digital · 最后更新 2026-10-03

本指南用到的工具修复编码CSV 转 Excel

你用 Excel 打开一个 CSV,结果中文变成了一堆看不懂的字符,Müller、José 这样的名字里,带重音的字母也被奇怪的符号代替。欧元符号和撇号同样变成了一串乱码。你的数据其实没有问题,只是 Excel 用错误的字符编码读取了文件。

到底发生了什么

文本文件本质上只是一串字节,而编码就是把字节转换成文字的规则。几乎所有现代系统都用 UTF-8 写入 CSV 文件,它能处理任何语言。但 Windows 上的 Excel 在你双击打开 CSV 时,仍然默认使用较旧的区域编码,比如简体中文系统上的 GBK 或西欧系统上的 Windows-1252,除非文件开头有一个叫字节顺序标记(BOM)的小标记。没有 BOM 时,所有非纯英文的字符都会按错误的规则解码,每个汉字或带重音的字母都会变成两三个乱码字符。

数据本身是完好的。用 Google 表格、Numbers 或文本编辑器打开同一个文件,显示就是正常的。

方法一:添加 BOM

如果文件本身是正确的 UTF-8,只是在 Excel 中显示错误,就用编码修复工具处理一下,并打开 BOM 选项。字符内容不会改变,但这个标记会告诉 Excel 按 UTF-8 读取,从此双击就能正常打开。

方法二:转换成真正的 Excel 文件

.xlsx 文件完全不存在编码歧义。CSV 转 Excel 工具会正确读取 CSV,并保存为在任何地方都能正常打开的工作簿。它还会保留邮政编码和电话号码开头的 0,而 Excel 直接打开 CSV 时会把这些 0 去掉。

方法三:用导入代替双击

在 Excel 中依次选择“数据”、“从文本/CSV”,把“文件原始格式”设为“65001: Unicode (UTF-8)”。这样 Excel 就能正确读取文件了。这个方法有效,但每次都得记得这么做,所以对于要分享的文件,前两种方法更实用。

文件本身已经损坏时

有时乱码已经被保存进了文件里。这种情况发生在有人用 Excel 打开 UTF-8 文件,看到一堆乱码,然后又保存了一次。这时乱码本身就成了数据,你在任何程序里都会看到问题,而不只是 Excel。编码修复工具正好有针对这种情况的修复模式:它能逆转双重编码,还原原来的文字。它的自动模式在大多数文件中都能识别出这种情况。需要注意的是,这个修复模式针对的是被按 Windows-1252 或 ISO-8859-1 误读后再保存的文件。如果中文文件是在简体中文系统上按 GBK 误读后又保存过,部分汉字可能已经无法还原,这时最好找回原始文件重新导出。

快速诊断

你看到的现象可能原因解决方法
只在 Excel 中出错,其他地方正常缺少 BOM添加 BOM,或转换成 .xlsx
在所有程序中都出错文件被误读后又保存了修复双重编码
显示问号或方框文件以旧的 Windows 编码保存从 Windows-1252 转换为 UTF-8

如何预防

  • 从 Excel 导出时,选择“CSV UTF-8”,而不是普通的 CSV。
  • 从其他系统导出给 Excel 用户使用的文件时,如果有添加 BOM 的选项,就勾选上。
  • 永远不要重新保存一个显示乱码的 CSV。先修复编码。