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。。。。。
但是文件名里面不能有日文,例如,小泽玛利亚,苍井空这些。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容