java中文文件名_如何解决java下载文件时出现中文文件名乱码问题?

如何解决java下载文件时出现中文文件名乱码问题?

发布时间:2020-05-21 22:58:47

来源:亿速云

阅读:116

作者:鸽子

解决方法:

1、sping-mvc.xml部分代码:

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

2、FileController.java中文文件名获取代码:

获取浏览器格式,根据不同浏览器控制文件名编码格式。String userAgent = request.getHeader("User-Agent");//获取浏览器名(IE/Chome/firefox)

if(userAgent.contains("MSIE")||userAgent.contains("Trident")) {//针对IE或IE为内核的浏览器

fileName=java.net.URLEncoder.encode(fileName,"UTF-8");

}else {

fileName=new String(fileName.getBytes("UTF-8"),"ISO-8859-1");//谷歌控制版本

}

headers.setContentDispositionFormData("attachment", fileName);// 默认下载文件名为原始文件名

其他浏览器控制字符格式:(详细)String userAgent = request.getHeader("User-Agent");//获取浏览器名(IE/Chome/firefox)

if (userAgent.contains("firefox")) {

fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); // firefox浏览器

} else if (userAgent.contains("MSIE")) {

fileName = URLEncoder.encode(fileName, "UTF-8");// IE浏览器

}else if (userAgent.contains("CHROME")) {

fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");// 谷歌

}

headers.setContentDispositionFormData("attachment", fileName);// 默认下载文件名为原始文件名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值