IE下载文件文件名中文乱码

。。。。。。

又是ie。

刚开始尝试了下面的方法:
if (assertIE(request.getHeader("User-Agent"))) {
fileName = URLEncoder.encode(fileName, "UTF-8");
} else {
fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1")
}

ie,6,8,9,10 都可以通过正则msie判断,到了11变了,变了。。。。。
后面有来了个edge。。。。。。。我不管,我认为都是IE。

于是乎我写了下面的判断是否IE的办法。
private static boolean assertIE(String agent) {
Pattern pattern = Pattern.compile("^.?(msie|trident.rv:|edge).*?$",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(agent);
return matcher.matches();
}

妈的写到最后发现。。

fileName = new String(fileName.getBytes("GBK"), "ISO8859-1")

用上面这一行代码就可以了。。。重点是GBK。。。。。
但是文件名里面不能有日文,例如,小泽玛利亚,苍井空这些。。。

你可能感兴趣的:(IE下载文件文件名中文乱码)