使用User-Agent请求头判断,动态切换不同的方案解决所有浏览器下载附件中文乱码问题
Content-Disposition 响应头,表示收到的数据怎样处理
attachment 表示附件,表示下载使用
filename= 表示下载的文件名
url编码是把中文汉字转化为%xxx%xxx的格式
java
//判断响应头是否包含Firefox表示是否为火狐浏览器
if (req.getHeader("User-Agent").contains("Firefox")){
resp.setHeader("Content-Disposition","attachment;filename==?UTF-8?B?"+
new BASE64Encoder().encode("文件名".getBytes("UTF-8"))+"?=");
}else {
resp.setHeader("Content-Disposition","attachment;filename="+
URLEncoder.encode("文件名","UTF-8"));
}