一个热爱网络的小学教师

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

前段时间用某软件导出了一个CSV文件,需要在Excel中处理并打印,但是我直接用Excel打开这个CSV文件却发现,文件中的所有中文字符都变成了乱码,经过自己的尝试,采用数据导入的方法解决了问题,后来又搜了一下,发现还有其他方法,数据导入只是其中一种而已。现在整理总结一下:

方法1、数据导入

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

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

方法2、先另存再打开

使用记事本打开CSV文件,“文件”->“另存为”,编码方式选择ANSI,保存完毕后,用EXCEL打开这个文件就不会出现乱码的情况。

问题产生的原因

为什么excel打开utf-8存储方式的文件会出现乱码呢?因为excel打开文件时默认使用unicode的编码方式(还有的网友说是默认以ANSI编码方式打开,待考)。在Unicode基本多文种平面定义的字符(无论是拉丁字母、汉字或其他文字或符号),一律使用2字节储存。恰恰utf-8是1字节的存储方式,所以excel直接打开时会出现乱码。

未经允许不得转载:高海鹏老师的博客 » 解决Excel打开UTF-8编码CSV文件乱码的问题

分享到:更多 ()

评论 5

Protected by WP Anti Spam

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #2

    “恰恰utf-8是1字节的存储方式”,你确定懂???

    11211年前 (2016-06-11)回复
    • 不懂,我复制粘贴的。

      高海鹏1年前 (2016-06-12)回复
  2. #1

    虽然解决方案不错,但是问题产生的原因分析错的离谱
    原文 使用记事本打开CSV文件,“文件”->“另存为”,编码方式选择ANSI
    这里已经表明了excel就是用ANSI读取的文件,下面怎么又说是
    原文 excel打开文件时默认使用unicode的编码方式

    原文 恰恰utf-8是1字节的存储方式
    作者真的懂吗?
    utf-8是标准的2字节存储方式
    Unicode是标准, 是规范
    utf-8是Unicode的一种实现方式, 可以说utf-8就是Unicode

    mikuPy20011年前 (2016-05-16)回复
    • 感谢指导!

      高海鹏1年前 (2016-05-18)回复
    • utf8是变长编码,存储ABC123是一个字节,和ANSI相同,存储汉字是三个字节

      tq1个月前 (06-13)回复
点击这里给我发消息