HttpServletRequest request = ServletActionContext.getRequest();
String Agent = request.getHeader("User-Agent");
//浏览器判断
if (null != Agent) {Agent = Agent.toLowerCase();
if (Agent.indexOf("firefox") != -1) {
_filename = java.net.URLDecoder.decode(request.getParameter("fileName"));
_filename = new String(_filename.getBytes(),"iso8859-1");
}else if(Agent.indexOf("chrome") != -1){
_filename = new String(request.getParameter("fileName").getBytes(),"iso8859-1");
}else if (Agent.indexOf("msie") != -1) {
_filename = request.getParameter("fileName");
_filename = java.net.URLEncoder.encode(request.getParameter("fileName"), "utf-8");
} else {
_filename = request.getParameter("fileName");
_filename = java.net.URLEncoder.encode(request.getParameter("fileName"), "utf-8");
}
}
//注 在客户端fileName已通过encodeURI 编码
//乱码出现的原因
ie采用URLEncoder编码输出中文 opera采用filename safari采用iso-8859-1 chrome采用base64或iso-8859-1 firefox采用base64或iso-8859-1