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

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

引用自:https://en.wikipedia.org/wiki/Comma-separated_values

CSV formats are not limited to a particular character set. They work just as well with Unicode character sets (such as UTF-8 or UTF-16) as with ASCII (although particular programs that support CSV may have their own limitations). CSV files normally will even survive naive translation from one character set to another (unlike nearly all proprietary data formats). CSV does not, however, provide any way to indicate what character set is in use, so that must be communicated separately, or determined at the receiving end (if possible).

Databases that include multiple relations cannot be exported as a single CSV file.

CSV是一个平面文件,它的编码方式有多种。比如,MongoDB以UTF-8格式存储数据,在使用mongoexport导出为CSV文件时,CSV的编码即为UTF-8。(可以将导出的CSV文件用UltraEdit打开来验证编码格式)

当直接使用Excel打开UTF-8编码的CSV文件时会出现乱码。

Microsoft Excel will open .csv files, but depending on the system‘s regional settings, it may expect a semicolon as a separator instead of a comma, since in some languages the comma is used as the decimal separator. It also applies some magic, such as reformatting what looks like numbers, eliminating leading + or 0, which breaks phone numbers, or a leading = makes the cell a formula, where function names must be in the opener‘s local language. Also, many regional versions of Excel will not be able to deal with Unicode in CSV. One simple solution when encountering such difficulties is to change the filename extension from .csv to .txt; then opening the file from an already running Excel instance with the "Open" command, where the user can manually specify the delimiters, encoding, format of columns, etc.

Excel打开CSV文件依赖于系统的区域设置。由于区域设置的影响,以及CSV文件不同的实现,那么Excel需要以正确的方式来打开CSV文件。我们以从MongoDB导出的UTF-8格式编码的CSV文件为例:

1. 打开Excel应用程序。

2. 点击“数据”菜单的“自文本”:

3. 选择CSV文件,点击“导入”,出现“文本导入向导”对话框。

从上面的默认设置我怀疑Excel默认以“Windows(ANSI)”打开CSV,未识别编码。

4. 文件类型选择“分割符号”,文件原始格式选择“65001:Unicode(UTF-8)”,勾选“数据包含标题”,点击下一步。

5. 分割符号去掉“Tab键”而勾选“逗号”,点击“下一步”。

6. 列数据格式根据需要选择,这里保持常规,点击“完成”。

7. 弹出“导入数据”对话框,我们选择“现有工作表”,点击“确定”。

8. 数据显示正常。

时间: 2024-12-05 16:21:51

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

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

解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG [email protected] http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6-6 方法一: 出处:http://blog.csdn.net/leonzhouwei/article/details/8447643 直接用 Excel 打开 UTF-8 编码的 CSV 文件会导致汉字部分出现乱码. 原因是 Excel 以 ANSI 格式打开,不会做编码识别. 打开 UTF-8 编

csv文件乱码

问题描述: 生成的csv文件,设置为UTF-8格式,在windows上用EXCEL打开的话会乱码,在linux上用vim或者cat打开查看正常:设置为GBK格式的话,在windows上用EXCEL打开正常,但在linux上乱码 解决方法: 在csv文件头部的最前面加bom BOM(Byte Order Mark),是 UTF编码方案里用于标识编码的标准标记,在 UTF-16里本来是 FF FE,变成 UTF-8就成了 EF BB BF.这个标记是可选的,因为 UTF8字节没有顺序,所以它可以被用

CSV文件乱码展示(编码格式问题)

最开始mac上打开CSV文件乱码,是这样的:CSV文件编码格式为UTF-8 解决办法一:将excel文件同样的转换编码格式为utf-8,具体操作如下: 去掉tab,勾选comma 最后,将文件另存为utf-8的格式以保持数据文件不会乱码 问题2:CSV文件如果是gbk格式需要如何打开excel 解决办法:使用文本编辑器打开,然后,修改其excel值 实际操作过程中修改一条数据我们可以很容易做到,修改十条数据我们可以稍微吃力一点,但是如果修改上万条数据的办法呢? 解决方案: 1.新建一个excel

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

前段时间用某软件导出了一个CSV文件,需要在Excel中处理并打印,但是我直接用Excel打开这个CSV文件却发现,文件中的所有中文字符都变成了乱码,经过自己的尝试,采用数据导入的方法解决了问题,后来又搜了一下,发现还有其他方法,数据导入只是其中一种而已.现在整理总结一下: 方法1.数据导入 打开 Excel,执行"数据"->"自文本",选择 CSV 文件,出现文本导入向导,选择"分隔符号",下一步,勾选"逗号",去掉&

记一次java生成csv文件乱码的解决过程 (GB2312编码)

系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口]  和 [服务*** server]. 场景:[服务*** server]多次调用[restful接口],每次[restful接口]会返回一个生成好的csv文件内容.[服务*** server]将每次[restful接口]返回的csv内容保存成一个csv文件.并将生成的多个csv文件打包成一个zip压缩包. [restful接口]:根据一组数据生成csv文件 1. java

导入CSV文件乱码

CSV格式的数据导入乱码,是很常见的一个问题.遇到此问题可试下以下方法: 1. CSV文件导入系统前没有乱码,在导入过程中出现乱码,可尝试改下文件的编码格式: 检查数据无误的csv文件,以记事本方式打开,另存为unicode编码格式.然后将unicode的文件进行导入就可以了. 2. CSV文件,AX在中文环境下,导入中文不乱码,在英文环境下导入中文数据乱码,检查代码: 这种情况出现,很可能是代码中用的CommaIO类,只支持单字节流导致.英文是单字节字符,中文是双字节字符,这就导致在英文环境下

PHP 导出csv文件乱码解决方案

最近在开发一个导出csv文件数据,到含有中文的时候会乱码,现在发现了一个很好的解决方案,就是再fwrite前加入一行代码即可. $fp = fopen("order.csv", "a"); //在写入数据之前先把bom头写到文件里 fwrite($fp,"\xEF\xBB\xBF"); $p=fwrite($fp,$str); // 写入数据 fclose($fp); 加上之后就可以正常了.

解决VS2005打开js,css,asp.php等文件,中文都是乱码的问题

用记事本打开可以正常观看但是用VS2005编辑器打开JS,中文确实乱码.解决办法:在VS 2005 的设置里面选择自动检测Utf-8:"工具"->"选项"->"文本编辑器"->"自动检测不带签名的 UTF-8 编码".

Java读取UTF-8格式文件第一行出现乱码——问号“?”及解决 And Java读带有BOM的UTF-8文件乱码原因及解决方法

测试例子: Java读取UTF-8的txt文件第一行出现乱码"?"及解决 test.txt文件内容: 1 00:00:06,000 --> 00:00:06,010 <b>Allerleirauh</b> (2012) <i>dTV - Das Erste - 20. Januar 2013</i> 2 00:00:10,280 --> 00:00:12,680 Was geh?rt zu einer guten Suppe?