Excel打开CSV乱码:把UTF-8编码与列的数据类型分开检查
本文在AI辅助下由原文翻译而成。请结合原文核对专业术语和公式。
双击CSV后,中文、日文或韩文名字变成奇怪字符,不要立刻覆盖原文件。可能是字节被按错误编码解读。即使文字正常,编号的前导零和日期仍可能被自动转换,所以编码与列类型需要分别检查。
区分编码问题与分隔符问题
UTF-8说明字符如何表示为字节,逗号、分号等分隔符用于划分字段。文字异常先查编码;整行挤进一个单元格先查分隔符。通过导入预览一次改变一个条件,避免混合问题。
| 现象 | 首先检查 | 还要核对 |
|---|---|---|
| 名字变成乱码 | 原文件实际编码 | 未损坏原件是否保留 |
| 所有列进一个单元格 | 分隔符 | 引号内分隔符处理 |
| 00123变成123 | 列数据类型 | 转换前的原始数据 |
使用导入预览,不要反复猜测
Microsoft说明带BOM的UTF-8 CSV可按常规方式打开,也提供不带BOM文件的数据或文本导入方式。是否带BOM取决于来源。关键是使用能够先检查编码和类型、再加载数据的路径。
- 保存未经修改的CSV副本。
- 从数据选项卡选择文本/CSV导入。
- 在预览中核对真实编码和分隔符。
- 检查名字、地址及非ASCII字符。
- 加载前把代码和长编号列设为文本。
- 将核对后的数据载入新工作簿。
还要检查Power Query自动添加的类型转换步骤。前导零已经删除后,再改成文本不能恢复它。应调整步骤,让原始列从开始就按文本读取,然后重新导入原件。
用不同特点的记录验证
多语言名单可选择各语言姓名、含逗号的地址和00123编号。引号包围的CSV字段中,逗号可能是内容而不是分隔符。全局替换每个逗号可能损坏地址。
先比较总行数和列数,再检查第一条、中间及最后一条记录。重要编号逐字符与原件对照。预览前几行正确并不能证明全部准确。记录编码、分隔符和文本列,方便其他人按相同方式重新导入。
如果已经保存乱码结果
错误解读后的保存可能替换原字符。不断把损坏文件改成不同编码不是可靠恢复方法,应从原下载或备份重新开始。导出新CSV时,确认接收者需要的编码、分隔符和字段规则,并重新导入输出文件测试。
官方资料:Microsoft UTF-8 CSV指南、文本及CSV导入导出、保留零和长数字。菜单随Excel版本和系统而变化。
相关实用文章
为帮助理解本文而制作的原创插画。