之前在幫忙做一個項目的時候,用的是Eclipse+Tomcat,統一用的是UTF-8編碼格式,發現從前台傳入的中文參數到后台老是出現亂碼(只有我才出現了錯誤,其他成員沒有)。出現問題后檢查Eclipse的編碼設置后均沒有問題,於是懷疑可能是Tomcat導致的問題。后來發現我的Tomcat和他們的不一樣,換成他們用的Tomcat后亂碼問題就沒有了!我很納悶,為什么會這樣呢,我明明是從Apache官網下載的,我很不理解!經過一段時間在網絡上的搜索,發現將Tomcat目錄下的server.xml文件的useBodyEncodingForURI設置為"true"可能可以解決問題,於是在
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />中加入useBodyEncodingForURI="true"后問題得到圓滿解決!!!
問題終於解決了,感覺很舒暢,必須充分利用網絡搜索功能,有時真的可以省很多時間和麻煩,呵呵!下面是我搜索到的解決Tomcat下亂碼的方法,僅供以后參考:
1、 對於同一個應用,最好統一編碼,推薦為UTF-8,當然GBK也可以。
2、 正確設置JSP的pageEncoding參數
3、 在所有的JSP/Servlet中設置contentType="text/html;charset=UTF-8"或response.setCharacterEncoding("UTF-8"),從而間接實現對瀏覽器編碼的設置。
4、 對於請求,可以使用過濾器或者在每個JSP/Servlet中設置request.setCharacterEncoding("UTF-8")。同
時,要修改Tomcat的默認配置,推薦將useBodyEncodingForURI參數設置為true,也可以將URIEncoding參數設置為
UTF-8(有可能影響其他應用,所以不推薦)。