办公软件

CSV 用 Excel 打开全是乱码?按编码和分隔符重新导入

约 6 分钟读完
CSV 用 Excel 打开全是乱码?按编码和分隔符重新导入

摘要

CSV 出现乱码,通常是编码识别错误;整行数据挤在一列,多半是分隔符不对。本文以 Windows 版 Microsoft Excel 365/2021 和 WPS 表格为例,演示如何在导入预览中选择 UTF-8、GBK/GB18030,指定逗号、分号或制表符,并把手机号、长编号按文本读取,避免科学计数法和前导零丢失。

本文目录

简要引言

日常所说的 CSV 是一张按分隔符拆列的文本表,但文件不一定真的使用英文逗号。中文变成 鍧、中文 或连续问号,通常是编码识别错误;整行内容挤在一列,则多半是分隔符不对。文件大多没有损坏,关键是不要反复双击,而是通过 Excel 的导入功能明确指定编码、分隔符和数据类型。

适用设备与系统版本

  1. 主要适用于 Windows 10/11 上的 Microsoft Excel 2019、Excel 2021 或 Microsoft 365。
  2. WPS 表格也可完成相同操作,不同版本的菜单名称可能略有变化。
  3. macOS 版 Excel 通常从“数据”菜单进入,名称多为“获取数据”或“自文本/CSV”。手机版对编码和分隔符的控制较少,建议优先在电脑端处理。

先判断乱码属于哪一类问题

  1. 发现乱码后先关闭预览窗口,不要把当前结果直接保存覆盖原文件。
  2. 进入导入预览窗口观察:中文内容异常是编码问题;每一行只落在一列是分隔符问题;手机号变成科学计数法或前导零消失,则是数据类型问题。
  3. 如果文件来自系统导出,优先向导出方确认编码和分隔符。常见编码是 UTF-8,较早的系统或软件可能使用 GBK、GB18030;常见分隔符则是逗号、分号和制表符。

用 Microsoft Excel 按编码重新导入

  1. 打开一个空白工作簿,依次点击“数据”→“自文本/CSV”→“从文件/文本/CSV”,再选择 CSV 文件。不同版本也可能直接显示文件选择窗口。
  2. 在预览窗口左上角的编码下拉框中,英文界面通常显示为 File Origin。优先选择 Unicode/UTF-8;如果导出方明确说明文件是 GBK 或 GB18030,就选择列表中对应的中文编码项。
  3. 再选择“分隔符”。可试“逗号”“分号”“制表符”或“竖线”,并观察每一行是否正确落入各列。不要只看第一屏,还要向下检查几行。
  4. 对手机号、身份证号、订单号、邮编等字段,点击“转换数据”。在 Power Query 编辑器中选中相应列,通过“开始/主页”→“转换数据类型”→“文本”设为文本,再执行“关闭并加载”或“关闭并上载”。不同版本措辞可能不同。
  5. 如果切换 UTF-8 后中文仍异常,不要继续保存,直接回到编码下拉框尝试其他编码,并在预览窗口判断结果。

按分隔符重新拆列

  1. 再次从“数据”→“自文本/CSV”导入文件,在预览窗口手动指定分隔符。即使扩展名是 .csv,实际也可能使用分号或制表符。
  2. 常用选项无法识别时,可点击“转换数据”,在 Power Query 中选中错成一列的字段,使用“拆分列”→“按分隔符”,再选择自定义字符。
  3. 遇到分号分隔且数值带小数逗号的文件,不要直接用替换功能把所有分号改成逗号,否则字段内部的逗号和引号内容可能被破坏。
  4. 加载前确认每一列的内容都与原表一致,尤其检查空字段、带引号的逗号字段和跨行文本。

老版 Excel 与 WPS 的替代操作

  1. 老版 Excel 可点击“数据”→“从文本”;Microsoft 365 中也可在“从文本/CSV”菜单里寻找“从文本(旧版)”。
  2. 向导第一步选择“分隔符号”,将文件原始格式设为 UTF-8 或中文系统对应的 ANSI/GBK;第二步勾选实际使用的分隔符;第三步可把编号、手机号等列的数据格式设为“文本”。
  3. WPS 表格通常点击“数据”→“导入数据”→“从文本/CSV”,旧版菜单可能直接显示“从文本文件”。
  4. 在 WPS 的预览窗口选择 UTF-8、GBK、GB18030 或 ANSI,并指定逗号、分号、制表符等分隔符,确认预览正常后再导入。

仍然乱码时这样排查

  1. 不确定编码时,可依次试 UTF-8、GB18030、GBK 和 ANSI,每次只看预览结果。简体中文 Windows 中的 ANSI 往往对应 GBK,但并非所有电脑都相同。
  2. 如果导出程序可以重新生成文件,让它选择“UTF-8 带 BOM”或“CSV UTF-8(逗号分隔)”。BOM 对旧版 Excel 的自动识别更友好。
  3. 如果文件已被错误编码后再次保存,原始字符可能已经发生变化。此时反复切换编码通常无法恢复,应向数据提供方重新导出原文件。

正确保存和再次发送

  1. Microsoft 365 可使用“文件”→“另存为”→“浏览”,保存类型选择“CSV UTF-8(逗号分隔)(*.csv)”。
  2. CSV 只保存单张表的数据,不保留多工作表、复杂格式和部分公式信息。发送前应检查公式结果、空值和列顺序。
  3. 对手机号、长编号和带前导零的编号,应在导出前就按文本保存,避免接收方再次导入时丢失格式。

注意事项

  1. 不要用 Excel 的查找替换批量删除逗号、分号或引号,标准 CSV 允许字段内部出现分隔符,解析器会按引号规则处理。
  2. 超过 15 位的纯数字如果已被 Excel 当作数值处理,精度可能丢失。发现这种情况应重新从原文件导入,并把该列设为文本。
  3. 调试时始终保留原文件副本,只在新工作簿中导入和另存,避免覆盖后无法判断最初的编码。
  4. 同一文件在 WPS 中正常、在 Excel 中乱码,通常是两者默认编码和解析方式不同,使用上述导入预览统一指定即可。

小结

处理 CSV 乱码的核心只有三项:先在预览窗口选对编码,再选对分隔符,最后把编号类字段设为文本。不要反复双击试错;来源明确时优先使用 UTF-8,旧文件则根据实际情况选择 GBK 或 GB18030。

常见问题

CSV 双击打开后乱码,还能直接修复吗?

先关闭文件且不要保存,再通过“数据”→“自文本/CSV”导入,在预览窗口切换 UTF-8、GB18030 或 GBK。若错误结果已经覆盖原文件,则需要重新获取原始文件。

文件明明叫 CSV,为什么导入后整行只在一列?

扩展名不代表实际分隔符。文件可能使用分号、制表符或竖线。在导入预览中改选正确分隔符;常见选项无效时,再使用 Power Query 的“拆分列”功能。

手机号变成科学计数法,或者前导零消失了怎么办?

关闭自动加载结果,点击“转换数据”,在加载前将手机号、编号等列转换为文本。已经加载并发生变化的列可能无法完整恢复,最好重新导入原始文件。

参考来源