之前在公司做文件下载的时候就出现过各种浏览器兼容问题, 出现问题一般都是浏览器对响应头的解析出现问题,导致抛出各种各样的问题. 现在刚好有朋友问到,将再次将代码整理记录下.
private String getStr(HttpServletRequest request, String realFileName)
throws Exception {
String browName = null;
String clientInfo = request.getHeader("User-agent");
System.out.println(clientInfo);
if (clientInfo != null && clientInfo.indexOf("MSIE") > 0) {//
// IE采用URLEncoder方式处理
if (clientInfo.indexOf("MSIE 6") > 0
|| clientInfo.indexOf("MSIE 5") > 0) {// IE6,用GBK,此处实现由局限性
browName = new String(realFileName.getBytes("GBK"),
"ISO-8859-1");
} else {// ie7+用URLEncoder方式
browName = java.net.URLEncoder.encode(realFileName, "UTF-8");
}
} else {//其他浏览器
browName = new String(realFileName.getBytes("GBK"), "ISO-8859-1");
}
return browName;
}