java web項目get,post請求參數中文亂碼解決


在開發過程中,有時候會碰到get,post請求參數中文亂碼。

原因:

 Http請求傳輸時將url以ISO-8859-1編碼,服務器收到字節流后默認會以ISO-8859-1編碼來解碼成字符流(造成中文亂碼)

 解決方案一:

    在后台接收到參數后,對參數進行解碼操作。

    缺點:

   對每個可能的出現的中文參數,都要進行解碼,麻煩,硬編碼,擴展性弱。

 String str =  URLDecoder.decode((new String(admin.getUsername().getBytes("ISO8859-1"), "UTF-8")), "UTF-8");

解決方案二:

在tomcat安裝目錄下的conf目錄下的server.xml添加如下配置:

 

  添加兩項配置含義:

useBodyEncodingForURI參數表示是否用request.setCharacterEncoding參數對URL提交的數據和表單中GET方式提交的數據進行重新編碼,在默認情況下,該參數為false。

URIEncoding參數指定對所有GET方式請求進行統一的重新編碼(解碼)的編碼。

      URIEncoding和useBodyEncodingForURI區別:

URIEncoding是對所有GET方式的請求的數據進行統一的重新編碼,

而useBodyEncodingForURI則是根據響應該請求的頁面的request.setCharacterEncoding參數對數據進行的重新編碼,不同的頁面可以有不同的重新編碼的編碼。






免責聲明!

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



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