java导出Excel文件名中文乱码

扎蛙 2018-07-10 09:06:23
项目是springboot+swagger ,使用POI导出Excel,百度上的那些解决方案几乎都试了,debug没有乱码,在swagger上测试的时候出现乱码.


String fileName = "_费率-" + DateUtil.DateToStr(new Date());
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setHeader("content-disposition",
"attachment;filename=" + new String(fileName.getBytes("utf-8"),"ISO-8859-1" )+ ".xls");


求指点.
...全文
5981 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜月号角 2020-09-24
  • 打赏
  • 举报
回复 1
有点东西啊 好几个人说是swagger的问题 就没一个靓仔说解决方案 ?
MovemOemVeovE 2020-09-10
  • 打赏
  • 举报
回复
谢谢楼主,搞了好几个小时了,真是醉了,原来是swagger的问题。
  • 打赏
  • 举报
回复
swagger的问题怎么解决的啊 大佬们 求知道
  • 打赏
  • 举报
回复
哇哇,确实是swagger的问题
qq_42538813 2019-05-17
  • 打赏
  • 举报
回复
扎蛙 2018-07-17
  • 打赏
  • 举报
回复
已经解决了,是swagger的问题,处理导出文件的时候乱码。在web上测试没有乱码。
yelianchen2013 2018-07-10
  • 打赏
  • 举报
回复 1
看你是什么浏览器了,火狐浏览器和其他浏览器,处理编码方式不太一样,用request区分



fileName = fileName+".xls";
String agent = request.getHeader("USER-AGENT").toLowerCase();
if (agent.contains("firefox")) {
response.reset();
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(), "ISO8859-1") );
}else{
fileName = URLEncoder.encode(fileName, "UTF-8");
response.reset();
// ContentType 可以不设置
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
}
qq593467574 2018-07-10
  • 打赏
  • 举报
回复

fileName = URLEncoder.encode(fileName, "UTF-8");
fileName = new String(this.fileName.getBytes("utf-8"),"ISO-8859-1");


黄河北岸。 2018-07-10
  • 打赏
  • 举报
回复
fileName = new String(fileName.getBytes("GBK"), "ISO8859_1");

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧