本篇文章為大家展示了java request.getParameter中文亂碼的解決方法,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
我們提供的服務有:做網(wǎng)站、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、遼陽ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的遼陽網(wǎng)站制作公司
今天瀏覽項目時候,遇到一個問題,頁面用${requestScope.參數(shù)名 }獲取的值是亂碼,然后搜了一下,最后說是編碼的問題,附上查找的結果:
在Java 開發(fā)中,如果框架搭建的不完善或者初學者在學習過程中,出現(xiàn)中文亂碼是經(jīng)常的事兒(哈。誰讓發(fā)明java語言的不是中國人呢)
今天跟大家分享幾個解決java Web開發(fā)中,request.getParameter()獲取URL中文參數(shù)亂碼的解決辦法
解決問題,先要研究問題,URL傳中文參數(shù)為什么會出現(xiàn)亂碼?
原因: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ù)進行的重新編碼,不同的頁面可以有不同的重新編碼的編碼
還有一種方法,通過重寫getParameter方法,設置解碼/方式來解決亂碼問題。
上述內(nèi)容就是java request.getParameter中文亂碼的解決方法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標題名稱:javarequest.getParameter中文亂碼的解決方法
鏈接URL:http://aaarwkj.com/article0/iijhoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計、網(wǎng)站改版、Google、虛擬主機、商城網(wǎng)站、動態(tài)網(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)