java中url傳參數(shù)出現(xiàn)亂碼的解決方法-創(chuàng)新互聯(lián)

原因:

創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今,先為山陽(yáng)等服務(wù)建站,山陽(yáng)等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為山陽(yáng)企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

Http請(qǐng)求傳輸時(shí)將url以ISO-8859-1編碼,服務(wù)器收到字節(jié)流后默認(rèn)會(huì)以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");

這是通過轉(zhuǎn)碼的方式處理亂碼問題。

方法二:

我們也可以通過Tomcat配置文件,設(shè)置URL編碼集(URIEncoding)設(shè)置編碼,這種方法也是一勞永逸的。

修改Tomcat/conf 目錄下 server.xml文件

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" 
useBodyEncodingForURI="true" URIEncoding="UTF-8"/>

重點(diǎn)在 userBodyEncodingForURI 和 URIEncoding 這兩個(gè)屬性。

useBodyEncodingForURI參數(shù)

表示是否用request.setCharacterEncoding參數(shù)對(duì)URL提交的數(shù)據(jù)和表單中GET方式提交的數(shù)據(jù)進(jìn)行重新編碼,在默認(rèn)情況下,該參數(shù)為false。

URIEncoding參數(shù)

指定對(duì)所有GET方式請(qǐng)求進(jìn)行統(tǒng)一的重新編碼(解碼)的編碼。

URIEncoding和useBodyEncodingForURI區(qū)別

URIEncoding是對(duì)所有GET方式的請(qǐng)求的數(shù)據(jù)進(jìn)行統(tǒng)一的重新編碼。

useBodyEncodingForURI則是根據(jù)響應(yīng)該請(qǐng)求的頁(yè)面的request.setCharacterEncoding參數(shù)對(duì)數(shù)據(jù)進(jìn)行的重新編碼,不同的頁(yè)面可以有不同的重新編碼的編碼。

擴(kuò)展:

統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifier ,URL)是采用一種特定語(yǔ)法標(biāo)識(shí)一個(gè)資源的字符串。所標(biāo)識(shí)的資源可能是服務(wù)器上的一個(gè)文件。Java的URL網(wǎng)絡(luò)類可以讓你通過URL去練級(jí)網(wǎng)絡(luò)服務(wù)器并獲取資源。

以上就是java中url傳中文參數(shù)出現(xiàn)亂碼的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

本文標(biāo)題:java中url傳參數(shù)出現(xiàn)亂碼的解決方法-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://muchs.cn/article18/hidgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、定制網(wǎng)站、關(guān)鍵詞優(yōu)化、小程序開發(fā)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)