解決ie和其他瀏覽器poi下載excel檔名亂碼
阿新 • • 發佈:2019-01-05
使用poi,做傳統的excel匯出,然後想在瀏覽器中,讓使用者選擇另存為,儲存使用者下載的xls檔案,這個時候,可能的是在ie下出現亂碼(ie,9,10,11),但在firefox,chrome下沒亂碼,
ie,chrom,firfox下處理檔名顯示亂碼
*/
public static String processFileName(HttpServletRequest request, String fileNames) {
String codedfilename = null;
try {
String agent = request.getHeader("USER-AGENT");
if (null != agent && -1 != agent.indexOf("MSIE") || null != agent
&& -1 != agent.indexOf("Trident")) {// ie
String name = java.net.URLEncoder.encode(fileNames, "UTF8");
codedfilename = name;
} else if (null != agent && -1 != agent.indexOf("Mozilla")) {// 火狐,chrome等
codedfilename = new String(fileNames.getBytes("UTF-8"), "iso-8859-1");
}
} catch (Exception e) {
e.printStackTrace();
}
return codedfilename;
}
response.setHeader("Cache-Control", "private");
response.setHeader("Pragma", "private");
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Type", "application/force-download");
title = FileUtil.processFileName(request, title);
response.setHeader("Content-disposition", "attachment;filename=" + title + ".xls");