解决java以UTF-8输出中文时,excel打开乱码但是记事本打开却正常的问题。

java 写csv文件,以UTF-8编码输出的时候,文本文件或者notepad++ 打开的时候是正常显示的,但是使用excel打开的时候中文却是乱码。

原因是excel是以ANSI方式打开csv的。

在写文件时先写BOM即可:

//添加文件头,否则excel打开会乱码
        try( FileOutputStream  fos = new FileOutputStream(rstFilePath)) {

            //追加BOM标识
            fos.write(0xef);
            fos.write(0xbb);
            fos.write(0xbf);
        }
        catch (Exception e){
            log.error("Write file head error: ",e);
            return;
        }

Original: https://www.cnblogs.com/sixiweb/p/14283467.html
Author: 四喜
Title: 解决java以UTF-8输出中文时,excel打开乱码但是记事本打开却正常的问题。

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/539266/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【spring框架源码学习】定时调度框架

    @EnableScheduling 该注解 org.springframework.scheduling.annotation.SchedulingConfiguration or…

    Java 2023年5月29日
    084
  • Java中的static关键字

    在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个”伪全局”的概念,在Java中static表示”全局”或者…

    Java 2023年5月29日
    0118
  • 头秃了,Spring Boot 自动配置源码解析了解一波~

    前言 源码版本 @SpringBootApplication 干了什么? @EnableAutoConfiguration 干了什么? 总结 为什么 Spring Boot这么火?…

    Java 2023年6月14日
    081
  • IDEA 设置快捷键上下整行

    快捷键上下整行 点击新增快捷键 posted @2022-09-16 20:25 一蓑烟雨任平生。。 阅读(8 ) 评论() 编辑 Original: https://www.cn…

    Java 2023年6月7日
    092
  • fastposter 2.1.1 紧急版本发布 电商级海报生成器

    fastposter 2.1.1 紧急版本发布 电商级海报生成器 fastposter低代码海报生成器,一分钟完成海报开发。支持 Java Python PHP Go JavaSc…

    Java 2023年6月5日
    0109
  • H3CNE学习笔记

    1.IP的主要作用 2.IP网络的结构 3.路由器和交换机的选择 路由器通常用来连接多个网段(路由器的一个接口相当于一个网段) 交换机通常用来连接多个PC机形成一个网段 4.sou…

    Java 2023年6月6日
    082
  • spring的自动注入

    Spring自动注入 spring的ioc 在刚开始学习spring的时候肯定都知道spring的两个特点:ioc,aop,控制反转和切面编程,这篇就只说说ioc ioc是什么:在…

    Java 2023年6月6日
    076
  • 分析:如何多线程运行测试用例

    这是时常被问到的问题,尤其是UI自动化的运行,过程非常耗时,所以,所以多线程不失为一种首先想到的解决方案。 多线程是针对的测试用例,所以和selenium没有直接关系,我们要关心的…

    Java 2023年5月30日
    077
  • 约瑟夫问题

    这篇博客是我在B站看韩顺平老师的数据结构和算法的约瑟夫问题后的学习笔记,记录一下,防止忘记,也希望能帮到各位小伙伴。 问题引入:设编号为 1,2,… n 的 n 个人围…

    Java 2023年6月15日
    0115
  • RocketMq基础 看这一篇就够了

    RocketMQ 编译安装 HelloWorld 官方网站 http://rocketmq.apache.org GitHub https://github.com/apache/…

    Java 2023年6月7日
    095
  • 简易线程池的实现

    1 线程池 为了避免多线程操作过程种线程频繁申请和释放所带来的性能消耗,可以提前创建多个线程,当有任务到来时从线程池中选择一个线程执行,执行完后继续在线程池中待命。 核心是使用一个…

    Java 2023年5月30日
    0115
  • 【RocketMQ】消息的存储

    Broker对消息的处理 BrokerController初始化的过程中,调用 registerProcessor方法注册了处理器,在注册处理器的代码中可以看到创建了处理消息发送的…

    Java 2023年6月8日
    094
  • Spring Security系列之极速入门与实践教程

    @ 1. Spring Security 2. 实验环境准备 3. 日志级别修改 4. 配置用户名/密码 5. 数据库方式校验 6. 不拦截静态资源 7. 自定义登录页面 8. R…

    Java 2023年5月30日
    086
  • out与err输出流

    System.in、System.out与System.err 当我们查阅文档可知,out与err都是Java中的输出流,in是”标准”输入流,System…

    Java 2023年6月5日
    079
  • 分享一下 Idea 的 scope 功能

    分享一下 Idea 的 scope 功能 事情的起因是我在使用 idea 的 call hierarchy功能时,觉得它没有像 find usage那样有排除功能,并且如果点击了 …

    Java 2023年6月5日
    077
  • 力扣35题搜索插入位置Q35SearchInsertPosition

    Q35SearchInsertPosition 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 …

    Java 2023年6月8日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球