首頁 >Java >Java基礎 >java中url傳中文參數出現亂碼

java中url傳中文參數出現亂碼

王林
王林原創
2019-12-05 14:05:032363瀏覽

java中url傳中文參數出現亂碼

原因:

#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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn