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字节没有顺序,所以它可以被用来检测一个字节流是否是 UTF-8编码的。微软做这种检测,但有些软件不做这种检测,而把它当作正常字符处理。

代码如下:

File file = new File(ospFileName);

OutputStream stream = new FileOutputStream(file);

stream.write(newbyte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });

CsvWriter ospWriter = new CsvWriter(stream, ‘,‘, Charset.forName("UTF-8"));

String[] ospHead = new String[]{"No","Comment","server","method","param-exp","response","trace-id"};

ospWriter.writeRecord(ospHead);

这样的话,在windows上用EXCEL打开就不会是乱码,linux上也显示正常;

时间: 2024-08-21 12:47:15

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 编

解决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 par

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

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

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

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

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

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

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

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

导入CSV文件乱码

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

selenium WebDriver:使用TestNG和CSV文件进行数据驱动

1.如何解决CSV文件乱码问题 讲csv文件用UltraEdit-32软件打开,在底部状态栏有标识中将编码类型变为utf-8 2.具体结合csv数据驱动代码 csv文件 package cn.gloryroad; import org.testng.annotations.Test;import org.testng.annotations.BeforeMethod;import org.testng.annotations.AfterMethod;import org.testng.annot

避免UTF-8的csv文件打开中文出现乱码

最近又遇到了需要提供csv下载功能的需求,不同的时需要用java来实现,心想简单,就把以前php的版本重写了一遍,然后生成一份csv,用excel2007打开一看,里面的中文都是乱码,一下就懵了,以前好好的功能怎么突然不行了??以前也一直用2007的啊!于是开始了漫长的google之旅. 看来看去,说的都是输出utf-8格式的csv需要在文件头先输出BOM(BOM不懂的可以google了),即0xEF 0xBB 0xBF三个字节,这样更摸不着头脑了,明明是对的,偏偏不成功,直到发现一个帖子:ht