原因:
成都創(chuàng)新互聯(lián)是一家專業(yè)提供姜堰企業(yè)網(wǎng)站建設,專注與成都做網(wǎng)站、成都網(wǎng)站設計、H5高端網(wǎng)站建設、小程序制作等業(yè)務。10年已為姜堰眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設公司優(yōu)惠進行中。
Http請求傳輸時將url以ISO-8859-1
編碼,服務器收到字節(jié)流后默認會以ISO-8859-1
編碼來解碼成字符流(造成中文亂碼)。
方法一:
我們需要把request.getParameter
(“參數(shù)名”)
獲取到的字符串先用ISO-8859-1編碼成字節(jié)流,然后再將其用utf-8解碼成字符流。
String str = new String(request.getParameter("參數(shù)名").getBytes("iso-8859-1"), "utf-8");
這是通過轉碼的方式處理亂碼問題。
方法二:
我們也可以通過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參數(shù)
表示是否用request.setCharacterEncoding參數(shù)對URL提交的數(shù)據(jù)和表單中GET方式提交的數(shù)據(jù)進行重新編碼,在默認情況下,該參數(shù)為false。
URIEncoding參數(shù)
指定對所有GET方式請求進行統(tǒng)一的重新編碼(解碼)的編碼。
URIEncoding和useBodyEncodingForURI區(qū)別
URIEncoding是對所有GET方式的請求的數(shù)據(jù)進行統(tǒng)一的重新編碼。
useBodyEncodingForURI則是根據(jù)響應該請求的頁面的request.setCharacterEncoding參數(shù)對數(shù)據(jù)進行的重新編碼,不同的頁面可以有不同的重新編碼的編碼。
擴展:
統(tǒng)一資源標識符(Uniform Resource Identifier ,URL)是采用一種特定語法標識一個資源的字符串。所標識的資源可能是服務器上的一個文件。Java的URL網(wǎng)絡類可以讓你通過URL去練級網(wǎng)絡服務器并獲取資源。
以上就是java中url傳中文參數(shù)出現(xiàn)亂碼的詳細內(nèi)容,更多請關注創(chuàng)新互聯(lián)其它相關文章!
當前文章:java中url傳參數(shù)出現(xiàn)亂碼的解決方法
URL鏈接:http://aaarwkj.com/article2/jposic.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、面包屑導航、ChatGPT、軟件開發(fā)、標簽優(yōu)化、品牌網(wǎng)站設計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)