解决 Excel 打开 UTF-8 编码 CSV 文件乱码的问题
·1 min
Table of Contents
现象: #
从网页上或别的系统导出数据文件存储为 CSV 格式文件,使用记事本打开显示文字没有问题,而使用 EXCEL 打开出现乱码。
原因: #
这种情况一般是导出文件的编码问题。在简体中文环境下,EXCEL 打开 CSV 文件默认是 ANSI 编码,不会做编码识别,如果 CSV 文件的编码方式为 utf-8、Unicode 等编码可能就会出现文件乱码的情况。
解决方法: #
方法一、MS EXCEL 的数据导入
- 打开 Excel
- 执行“数据”→“自文本”
- 选择 CSV 文件,出现文本导入向导
- 选择“分隔符号”,下一步
- 勾选“逗号”,去掉“ Tab 键”,下一步,完成
- 在“导入数据”对话框里,直接点确定
导入之后汉字显示正常,乱码问题解决。
方法二、先另存再打开
将 Microsoft office 应用程序默认的语言设为“中文(简体)”。
- 使用记事本打开 CSV 文件,选择“文件”→“另存为”,编码方式选择 ANSI,保存;
- 用 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