从系统导出的 CSV 双击打开,中文全变成"鍒涘缓鏃堕棿""å¸"这种鬼画符。文件本身没坏,也没有丢内容——只是它用一种编码存字,Excel 用另一种编码去解释。

这类问题只有"编码对不上"一个成因,所以修法也只有一个:先确认文件是什么编码,再让 Excel 用这个编码去读。凭感觉点"重新保存"会把错的东西写进文件,从此再也修不好。

第一步:用记事本看出真实编码

右键 CSV → 打开方式 → 记事本,然后看 文件 → 另存为 对话框最下方那个"编码"下拉框:

  • 显示 ANSI → 这份文件是系统本地编码,中文环境下就是 GBK/GB18030
  • 显示 UTF-8 或 UTF-8 with BOM → 这份文件是 UTF-8

这一步是关键,很多人跳过了它就永远修不对。 另一个更快的验证:在记事本里中文显示正常,说明记事本猜对了编码,直接看下拉框当前选中项即可;如果记事本里也乱码,用"另存为"下拉框手动切 ANSI / UTF-8 试,哪个能让中文正常显示,那个就是它的真实编码。

第二步:按编码正确打开

情况 A:文件是 UTF-8,Excel 双击打开乱码

Excel 对无 BOM 的 UTF-8 CSV 识别不好(尤其旧版本)。不要双击,走导入:

  1. 先打开一个空白 Excel
  2. 数据 → 从文本/CSV(旧版本叫"自文本"),选中文件
  3. 在导入向导里把文件原始格式/编码选为「UTF-8」
  4. 分隔符勾「逗号」,预览区确认列切分正确 → 加载

情况 B:文件是 GBK/ANSI,用 UTF-8 打开的人看到乱码

反过来做:向导里编码选 「中文(GBK2312)」或「简体中文(GB18030)」。

"鍒涘缓鏃堕棿"这一串是有指纹的:它是 UTF-8 字节流被按 GBK 解释的典型结果(看到"锟斤拷""烫烫烫"也是这一族)。看到这类字,基本可以断定源文件是 UTF-8,而你的软件按 GBK 读了。

想一劳永逸:转成带 BOM 的 UTF-8

如果这份 CSV 要在你机器上反复双击打开,最省心的做法是给它存成"UTF-8 带 BOM":

  1. 按第一步用记事本正确打开(中文显示正常)
  2. 文件 → 另存为,编码选 UTF-8(带 BOM)(新版记事本里可能写作"UTF-8",其默认已带 BOM)
  3. 保存覆盖,之后 Excel 双击就能正常显示

但要清楚这么做的代价:BOM 那几个字节会让部分程序读表头时把第一列名当成 \ufeff姓名,导入其他系统时报"找不到字段"。所以:

  • 给人看、在 Excel 里用 → 带 BOM 的 UTF-8 最省事
  • 给别的系统导入 → 用不带 BOM 的 UTF-8,或按对方文档要求来(很多国产系统其实要 GBK)

三个别做的事

其一:不要在乱码状态下直接编辑再保存。 这时 Excel 内存里已经是错的字符,保存会把错的东西写进文件,原始字节信息永久丢失,再也恢复不出来。

其二:不要"改扩展名为 .txt 试试"。 这只改变双击时用什么软件打开,不改变编码,白折腾。

其三:不要手工把乱码字一个个改回中文。 几百行时这是纯体力浪费,重新按正确编码导入是几秒钟的事。

你是导出方时,怎么避免别人乱码

如果你是给别人发 CSV 的那一方,做两件小事,能挡掉对方全部此类求助:

  1. 优先发 xlsx。 办公文档没有编码歧义(内部统一 UTF-8),差异只在格式和公式上,见 CSV 和 Excel 的区别
  2. 必须发 CSV 时,明确写清编码:在文件名或邮件里注明"(UTF-8)"或"(GBK,Excel 直接双击可开)"。这一行字的价值高于任何转换技巧
  3. 要发给领导或客户看结果,别发数据文件——把表格排好,导出成 Excel 转 PDF,谁打开都一样,永不存在乱码

相关的一类问题:PDF/Word 里的乱码

同源不同症。CSV 是"编码解释错",而 PDF 转 Word 后的方框是字体缺失、生僻字是字符集超范围,三种表现修法完全不同,别照搬这里的办法,见 乱码四步排查。