Java關於先後臺傳輸中文亂碼以及Excel下載亂碼解決

針對亂碼,通常狀況是先後臺以及中間件編碼格式不一樣致使.故須要保證編碼格式相同便可.java

1.前臺頁面格式指定,這裏用的是jsp,故須要將pageEncoding指定爲"UTF-8"瀏覽器

2.指定服務器編碼格式,好比用的tomcat,默認是"ISO-8859-1",打開server.xml找到"<Connector",添加URIEncoding="UTF-8".tomcat

3.若服務器未指定編碼格式,須要在接收的地方強制轉碼,new String("傳遞的中文參數".getBytes("ISO-8859-1"),"UTF-8"),若指定服務器編碼,則不須要強制轉換,不然轉換兩次則轉換成其餘字符.服務器

4.Excel下載中,須要根據瀏覽器指定編碼,具體以下:jsp

String agent = request.getHeader("USER-AGENT").toLowerCase();編碼

String codeFileName = java.net.URLEncoding.encode(fileName, "UTF-8");.net

if(agent.contains("firefox")) {firefox

   response.setCharacterEncoding("UTF-8");code

   response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(), "ISO-8859-1") + ".xls");server

} else {

   response.setHeader("Content-Disposition", "attachment;filename=" + codeFileName + ".xls"); 

}

相關文章
相關標籤/搜索