useBodyEncodingForURI="true"解決Tomcat亂碼問題


  之前在幫忙做一個項目的時候,用的是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(有可能影響其他應用,所以不推薦)。  




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM