Skip to main content
  1. Teches/

解决 Excel 打开 UTF-8 编码 CSV 文件乱码的问题

·1 min
Table of Contents

现象: #

从网页上或别的系统导出数据文件存储为 CSV 格式文件,使用记事本打开显示文字没有问题,而使用 EXCEL 打开出现乱码。

原因: #

这种情况一般是导出文件的编码问题。在简体中文环境下,EXCEL 打开 CSV 文件默认是 ANSI 编码,不会做编码识别,如果 CSV 文件的编码方式为 utf-8、Unicode 等编码可能就会出现文件乱码的情况。

解决方法: #

方法一、MS EXCEL 的数据导入

  1. 打开 Excel
  2. 执行“数据”→“自文本”
  3. 选择 CSV 文件,出现文本导入向导
  4. 选择“分隔符号”,下一步
  5. 勾选“逗号”,去掉“ Tab 键”,下一步,完成
  6. 在“导入数据”对话框里,直接点确定

导入之后汉字显示正常,乱码问题解决。

方法二、先另存再打开
将 Microsoft office 应用程序默认的语言设为“中文(简体)”。

  1. 使用记事本打开 CSV 文件,选择“文件”→“另存为”,编码方式选择 ANSI,保存;
  2. 用 Excel 打开这个文件就不会出现乱码。

方法三、使用 Ron’s Editor - Ultimate CSV Editor
免费的 CSV 编辑器,支持 UTF-8 字符集。

扩展: #

为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE字符开头。这作为一个”特征符”或”字节顺序标记(byte-order mark,BOM)”来识别文件中使用的编码和字节顺序(big-endian 或 little-endian),具体的对应关系见下表:

Bytes Encoding Form
00 00 FE FF UTF-32, big-endian
FF FE 00 00 UTF-32, little-endian
FE FF UTF-16, big-endian
FF FE UTF-16, little-endian
EF BB BF UTF-8

以 UTF-8 无 BOM 格式编码,因此要想导出 Microsoft Excel 可以正常显示的 UTF-8 的 CSV 文件,需要显式的输出 BOM(EF BB BF,上表的最后一种类型),然后再输出有效数据。

—— CC BY-NC-ND 4.0