使用IE浏览器下载文件,文件名乱码问题

实现文件下载功能时,使用IE下载出现文件名乱码不能通过以下方式判断了

if (req.getHeader("user-agent").toLowerCase().contains("msie")) {  
        // IE  
    filename = URLEncoder.encode(filename, "UTF-8");  
} else {  
        // 非IE  
    filename = new String(filename.getBytes("UTF-8"), "iso-8859-1");  
}

因为在Windows 10 中 用户代理字符串已经不是msie了。

可以使用如下方式:

String userAgent = req.getHeader("user-agent").toLowerCase();  
  
if (userAgent.contains("msie") || userAgent.contains("like gecko") ) {  
        // win10 ie edge 浏览器 和其他系统的ie  
    fileName = URLEncoder.encode(fileName, "UTF-8");  
} else {  
        // fe  
    fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");  
}

转自:Java 使用IE浏览器下载文件,文件名乱码问题

猜你喜欢

转载自blog.csdn.net/WYA1993/article/details/81452689