tomcat服務器下載中文亂碼

今天遇到一個問題,寫的好好的一個下載,本地下載沒問題,結果部署到服務器上就出問題,查了好久才找到問題所在,記錄一下引以爲戒。

服務器上 tomcat/conf/server.xml上設置了URIEncodingUTF-8,
那麼默認request的編碼是iso8859-1,

我又加了上段代碼

 String name = request.getParameter("name");
 name = new String(filename.getBytes("iso8859-1"),"utf-8");
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"/>

1、你這種情況往往是在http請求get傳輸參數方式的時候,web容器是tomcat,而tomcat的默認編碼是iso8859-1。
2、若爲iso8859-1,而你的項目非該編碼在接收到中文類字符時,即會出現亂碼。
3、解決方法,即是將iso8859-1轉化爲項目編碼如gbk或utf-8,就解決了傳輸過程的中文亂碼問題。

這條connector中是否配置URIEncoding的值,不配置默認爲iso8859-1,如果寫上了如utf-8,你的程序就不需要轉了,如果還轉反而亂碼。
2.在post請求時,就不用考慮該點了,只要寫個字符過濾器全佈設置成utf-8,就可以避免亂碼了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章