前言
最近打开一个用ahrefs导出的csv数据文件,莫名其妙的出现了乱码的情况。因此当时用ahrefs下载的数据有点多,一下子没想到是什么原因引起的文件乱码。
后面回忆了一下当时的操作,应该是下载的时候选择的不是utf-16编码,而是选择的utf-8编码。
那这问题可能就是编码错乱的问题引起的打开乱码,数量本身应该是好的(繁体中文),不存在根源上的乱码(只是Excel2016打开时显示的不是中文,是乱码)。
那以后ahrefs下载的csv数据表,再次出现这种CSV 乱码怎么办呢?
没记错的话,ahrefs上显示,utf-16对应的打开程序是Microsoft Excel
,而utf-8编码对应的则是open office
。
这么看来,如果能解决打开时编码错乱的问题,应该就可以正常打开文件了。
解决办法
顺着上面的思路,通过搜索,在网上的解发现了几个与博主相类似的乱码问题。
都是源文件编码,与Office Excel中默认的打开编码不一致造成的,解决了编码不统一的问题,数据自然能正确的读出来。
如图,用Editplus可以看到正确的内容。
1. 改源文件编码为 「ANSI」(亲测有效)
查了一下Office中, Excel2016打开文件时所用的默认编码(博主用的是2016版,以下都是2016为测试案例),网上对比众说纷纭,并没有统一口径。
但这并不重要,因为Excel2016能很好的打开Ansi编码的文件,我们只要转换一下思路就行:
把乱码源文件,用Editplus等编辑器打开,另存为ANSI编码
的新副本,应该就能满足Excel2016的正常打开条件。
实测:
通过上面步骤转换完后,用excel2016可正常打开转换编码后的文件,且没异常能编辑。
2. 数据导入
这方法就是利用自文本中的数据导入功能,选择正确的分隔符号导入错乱的数据即可。
- 1.新建一个空白 的Excel文件。
- 2.找到菜单栏中的 “
数据
” 选项卡,点击 “自文本
”,会要求选择导入文件,选完后弹向导框。 - 3.修改编码,找一个不乱码的编码,一般为 UTF-8 或者 GBK,然后点击下一步
- 4.按实际情况选文本的分隔符(最下文数据预览有效果看)
- 5.这设置每一列的数据格式,点击完成(一般默认常规即可)
- 6.这一步直接点击
确定
即可。
正常情况下已经完成导入。
但“数据导入”这方法经经博主亲测,并不适合所有csv文件,存在大量不能导入的情况,如下面的“无法放置在一个工作表中“就是其中一种情况。
并不推荐
。导入数据时出现“此文件包含的数据无法放置在一个工作表中”
出现以下的提示,一般都表示数据导入即将失败
总结
本文讨论csv打开乱码,最直接的原因是在ahrefs中下载数据时选择了open office utf-8格式
的数据。
因此不想出现上面的繁体中文数据打开乱码的情况,下载时别手多选到utf-8上了,要选编码utf-16,MicroSoft Office Excel
那个选项。
如果不小心选到了utf-8上,可用上面的方法一打开。
但打开后的csv还是不能用excel2016修改的,即便修改后也不能保存,要再另存为xls格式才能保持修改的样式,当然这些都题外话了,不在本文的讨论范围。