小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

request.getParameter(“參數(shù)名”) 中文亂碼解決方法

 沙門空海 2017-09-13


Java 開發(fā)中,如果框架搭建的不完善或者初學(xué)者在學(xué)習(xí)過程中,出現(xiàn)中文亂碼是經(jīng)常的事兒(哈。誰讓發(fā)明java語言的不是中國人呢)

今天跟大家分享幾個解決java Web開發(fā)中,request.getParameter()獲取URL中文參數(shù)亂碼的解決辦法

解決問題,先要研究問題,URL傳中文參數(shù)為什么會出現(xiàn)亂碼?

原因:Http請求傳輸時將url以ISO-8859-1編碼,服務(wù)器收到字節(jié)流后默認(rèn)會以ISO-8859-1編碼來解碼成字符流(造成中文亂碼)

解決辦法:我們需要把request.getParameter(“參數(shù)名”)獲取到的字符串先用ISO-8859-1編碼成字節(jié)流,然后再將其用utf-8解碼成字符流

代碼:

  1. String str = new String(request.getParameter('參數(shù)名').getBytes('iso-8859-1'), 'utf-8');  

這是通過轉(zhuǎn)碼的方式處理亂碼問題,我們也可以通過Tomcat配置文件,設(shè)置URL編碼集(URIEncoding)設(shè)置編碼,這種方法也是一勞永逸的,

修改Tomcat/conf 目錄下 server.xml

  1. Connector port='8080' protocol='HTTP/1.1'   
  2.     connectionTimeout='20000'   
  3.     redirectPort='8444'   
  4.     useBodyEncodingForURI='true' URIEncoding='UTF-8'/>  

重點在 userBodyEncodingForURIURIEncoding 這兩個屬性

下面來解釋一下這兩個屬性的意義

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

URIEncoding參數(shù)指定對所有GET方式請求進(jìn)行統(tǒng)一的重新編碼(解碼)的編碼。

URIEncoding和useBodyEncodingForURI區(qū)別是,

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

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

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多