ie浏览器下载文件时出现中文乱码以及空格变为+

本文介绍了一种针对不同浏览器(如IE、Edge等)进行文件名转换的方法,确保在各种环境下正确下载文件。此方法通过检查User-Agent来判断浏览器类型,并据此进行相应的文件名编码。
String userAgent = request.getHeader("user-agent").toLowerCase();
          if (userAgent.contains("msie") || userAgent.contains("like gecko") ) {  
                  // win10 ie edge 浏览器 和其他系统的ie  
              fileName =  URLEncoder.encode(fileName,"UTF-8");
              fileName = fileName.replaceAll("\\+", "%20").replaceAll( "\\(","%28").replaceAll( "\\)","%29").replaceAll( ";","%3B").replaceAll( "@","%40").replaceAll( "\\#","%23").replaceAll( "\\&","%26").replaceAll( "\\,","%2C");
          } else {  
                  // fe  
              fileName = new String(fileName.getBytes("utf-8"), "ISO-8859-1");  
          }  
              response.addHeader("Content-Disposition", "attachment;filename="+ fileName);

文件名转换的方法要放对地方,放在返回文件下载信息里。

转载于:https://www.cnblogs.com/moonlignt/p/9228861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值