java下载时文件名出现乱码_关于java文件下载文件名出现乱码的问题的解决方法...

a8ee01e933919fce315134fd64acf4b2.png

下载JAVA文件时有两种情况下出现乱码:

1,下载时中文文件名乱码

2,由于该路径在下载过程中包含中文文件名乱码,因此提示找不到该文件

3646939ec6c9181dc4beba8deb5a0c87.png

解决方案显示在下面的代码中

response.setContentType("multipart/form-data");

String userAgent= request.getHeader("User-Agent");

String oraFileName=meetingFile.getFileName();

String formFileName=oraFileName;//针对IE或者以IE为内核的浏览器:

if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {

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

}else{//非IE浏览器的处理:

formFileName = new String(formFileName.getBytes("UTF-8"), "ISO-8859-1");

}

response.setHeader("Content-disposition",

String.format("attachment; filename=\"%s\"", formFileName));

response.setContentType("application/vnd.ms-excel;charset=utf-8");

response.setCharacterEncoding("UTF-8");

ServletOutputStream out;//通过文件路径获得File对象

File file = null;if (meetingFile != null) {

file= new File(path + "upload/"+oraFileName);

}

(1)如果是第一种乱码,则下载页面遇到以下中文乱码问题

669c0b31ab70b06790d0cdc754d9f963.png

5b9ef2f1b5b54eac8762048dc35c3c8f.png

f1675d59eeca94b76ee2ea6e04a31a8c.png

使用以下代码来解决

400f0bd07487a55fcfcbd6a3eedc0b1f.png

4b67663e5759a13551ec06f39744d871.png

(2)如果下载遇到第二种乱码问题下载下来的文件名乱码下载下来的文件名乱码,如图所示:

025336a6ca7622e0e05c2a833bc4a5d5.png

520d03483ae247afea1162c90bcdf3e7.png

使用以下代码解决: 首先,确保tomcat,eclipse等以UTF-8编码

cf252529d887eb7978ea12cff6cc5b34.png

然后在Java中,文件名编码与第一个分开,因此它们被分别编码而不会互相影响.

e68fc7c4c4b51c5b36ae2f188459ead6.png

d2ab12877bc92394ab7319f3a0505319.png

注意: 先前的测试可以解决下载Firefox和IE等浏览器时的编码问题,并且WIN10随附的浏览器仍会时不时出现乱码. 谢谢您与我分享.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/shumachanpin/article-165105-1.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值