原因:
#Http請求傳輸時將url以ISO-8859-1
編碼,伺服器收到位元組流後預設會以ISO-8859-1
編碼來解碼成字元流(造成中文亂碼)。
方法一:
#我們需要把request.getParameter
(“參數名稱”)
取得到的字串先用ISO-8859-1編碼成位元組流,然後再將其用utf-8解碼成字元流。
String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");
這是透過轉碼的方式處理亂碼問題。
線上學習影片教學分享:java影片
#方法二:
我們也可以透過Tomcat設定文件,設定URL編碼集(URIEncoding)設定編碼,這種方法也是一勞永逸的。
修改Tomcat/conf 目錄下 server.xml檔案<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>專注於 userBodyEncodingForURI 和 URIEncoding 這兩個屬性。 useBodyEncodingForURI參數
表示是否以request.setCharacterEncoding參數對URL提交的資料和表單中GET方式提交的資料進行重新編碼,在預設情況下,此參數為false。
URIEncoding參數######指定對所有GET方式請求進行統一的重新編碼(解碼)的編碼。 ###URIEncoding和useBodyEncodingForURI區別
#URIEncoding是對所有GET方式的請求的資料進行統一的重新編碼。
useBodyEncodingForURI則是根據回應該要求的頁面的request.setCharacterEncoding參數對資料進行的重新編碼,不同的頁面可以有不同的重新編碼的編碼。
相關文章教學推薦:java入門程式
#以上是java中url傳中文參數出現亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!