前段时间用某软件导出了一个CSV文件,需要在Excel中处理并打印,但是我直接用Excel打开这个CSV文件却发现,文件中的所有中文字符都变成了乱码,经过自己的尝试,采用数据导入的方法解决了问题,后来又搜了一下,发现还有其他方法,数据导入只是其中一种而已。现在整理总结一下:
方法1、数据导入
打开 Excel,执行“数据”->“自文本”,选择 CSV 文件,出现文本导入向导,选择“分隔符号”,下一步,勾选“逗号”,去掉“ Tab 键”,下一步,完成,在“导入数据”对话框里,直接点确定。
导入之后,所有汉字显示正常,乱码问题解决。
方法2、先另存再打开
使用记事本打开CSV文件,“文件”->“另存为”,编码方式选择ANSI,保存完毕后,用EXCEL打开这个文件就不会出现乱码的情况。
问题产生的原因
为什么excel打开utf-8存储方式的文件会出现乱码呢?因为excel打开文件时默认使用unicode的编码方式(还有的网友说是默认以ANSI编码方式打开,待考)。在Unicode基本多文种平面定义的字符(无论是拉丁字母、汉字或其他文字或符号),一律使用2字节储存。恰恰utf-8是1字节的存储方式,所以excel直接打开时会出现乱码。
老师好,请教一下,如果有批量CSV文件,需要通过 方法2,进行转换,有什么快捷的方法吗?
“方法2、先另存再打开使用记事本打开CSV文件,“文件”->“另存为”,编码方式选择ANSI,保存完毕后,用EXCEL打开这个文件就不会出现乱码的情况。”
EditPlus可以批量更改文本编码。
utf-8是1~4变长编码,utf-16(unicode)是4字节编码。
对于简体中文来讲,有两套向前兼容的文字编码:
ascii-gb2312-gbk-gb18030-gb18030扩展,即ansi;
ascii-utf8-utf16,即unicode。
现在多语言应用环境是主导,除了微软和大陆政府专用系统(最常见的报税报账软件),几乎所有软件都早已转成默认使用unicode了。
不过还是有用的
“恰恰utf-8是1字节的存储方式”,你确定懂???
不懂,我复制粘贴的。
虽然解决方案不错,但是问题产生的原因分析错的离谱
原文 使用记事本打开CSV文件,“文件”->“另存为”,编码方式选择ANSI
这里已经表明了excel就是用ANSI读取的文件,下面怎么又说是
原文 excel打开文件时默认使用unicode的编码方式
原文 恰恰utf-8是1字节的存储方式
作者真的懂吗?
utf-8是标准的2字节存储方式
Unicode是标准, 是规范
utf-8是Unicode的一种实现方式, 可以说utf-8就是Unicode
感谢指导!
utf8是变长编码,存储ABC123是一个字节,和ANSI相同,存储汉字是三个字节