某些浏览器下载文件乱码问题

1,我的问题,ie11下载文件时出现了乱码,

2,问题定位:

/*if (userAgent.indexOf("msie") != -1) {
fileName= new String(name.getBytes("gb2312"), "ISO8859-1" );
}else{
fileName = new String(name.getBytes("UTF-8"),
"ISO8859-1");
}*/
//处理方式不正确。
3,断点后发现了,各种浏览器userAgent类型如下:

IE11:mozilla/5.0 (windows nt 6.3; trident/7.0; rv:11.0) like gecko

IE10:mozilla/5.0 (compatible; msie 10.0; windows nt 6.2; trident/6.0)

IE9:mozilla/5.0 (compatible; msie 9.0; windows nt 6.1; trident/5.0)

IE8:mozilla/4.0 (compatible; msie 8.0; windows nt 6.1; trident/4.0)

Firefox:mozilla/5.0 (windows nt 10.0; win64; x64; rv:66.0) gecko/20100101 firefox/66.0

Chrome:mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/67.0.3396.99 safari/537.36

Opera:mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/60.0.3112.90 safari/537.36 opr/47.0.2631.80

4,根据以上类型更正代码如下:

if (StringUtils.contains(userAgent, "msie") || StringUtils.contains(userAgent, "trident")) {//IE浏览器
fileName = URLEncoder.encode(name,"UTF8");
} else if(StringUtils.contains(userAgent, "safari")){
fileName = URLEncoder.encode(name, "UTF8");//Opera浏览器 ,google
}else if (StringUtils.contains(userAgent, "chrome")||StringUtils.contains(userAgent, "firefox")) {//google,FireFox
fileName = new String(name.getBytes(), "ISO8859-1");
} else {
fileName = URLEncoder.encode(name, "UTF8");//其他浏览器

}
//因为Google 兼容了 chroome和safafi 所以,google浏览器可以适应两种编码方式。

 

 

转载于:https://www.cnblogs.com/dbymz1314/p/10751056.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值