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上也显示正常;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • testNG的高级用法 --DataProvider

    @DataProvider Method参数 数据提供者的第一个参数是java.lang.reflect.Method,TestNG传递这个将调用的测试方法。如...

    千往
  • jenkins 从git拉取代码

    步骤 jenkins已集成git插件(如无,请自行下载) 1. 去到源码管理栏,选中Git: ? 使用http协议去获取代码  Repository UR...

    千往
  • spring boot 登录注册 demo (三) -- 前后端传递

    前端页面通过thymeleaf渲染     <dependency> <groupId>org.springframework.boot...

    千往
  • 使用Nginx代理thrift NIO实现SSL链路加密

    1 目标说明 1.1 调研目的 本次调研主要为了解决两个问题: thrift提供的SSL API只支持BIO(阻塞式IO),而我们使用的是NIO API,希望能...

    囚兔
  • Socket套接字通信原理

           Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP...

    业余草
  • 深入理解 GitHub Flow

    GitHub Flow 是一个轻量级,基于分支的工作流,支持团队和项目的定期部署。本指南介绍了 GitHub Flow 的工作原理。 Step 1. 创建...

    CG国斌
  • 在.NET Core 里使用 BouncyCastle 的DES加密算法

    .NET Core上面的DES等加密算法要等到1.2 才支持,我们可是急需这个算法的支持,文章《使用 JavaScriptService 在.NET Core ...

    张善友
  • T-SQL Enhancement in SQL Server 2005[上篇]

    较之前一版本,SQL Server 2005可以说是作出了根本性的革新。对于一般的编程人员来说,最具吸引力的一大特性就是实现了对CLR的寄宿,使我们可以使用任意...

    蒋金楠
  • 【Java面试复习经典】传智播客Java就业班入学测试题及答案解析(2014年版)

    黑泽君
  • js实现关于数据字典的使用和数据存放的策略

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    逝兮诚

扫码关注云+社区

领取腾讯云代金券