一、需求
在web開發過程中,通常我們會遇到請求url位址帶有中文引數,這些中文引數一到後端就變成亂碼。
這時我們需要進行處理。
二、問題原因
出現亂碼的原因,很明顯是編碼不對。原因在於tomcat聯結器預設的編碼是「iso8859-1」,而中文需要
用unicode、gbk或gb2312才能正確顯示。
三、解決問題
明白了tomcat聯結器編碼及亂碼原因後,解決中文亂碼就很容易了,只要保證兩端編碼一致且能正常
顯示中文即可。
方式一(不改**,改tomcat):
修改tomcat聯結器的預設編碼,將「iso8859-1」改為」utf-8「,
具體操作是,將 uriencoding="utf-8" usebodyencodingforuri="true" 新增到tomcat的conf目錄下
server.xml中的connector標籤(所有在用的connector標籤都加)中,新增後即是:
uriencoding="utf-8" usebodyencodingforuri="true" />
方式二(不改tomcat,改**):
前台編碼:在js中用encodeuri函式進行一次編碼,即encodeuri(引數)
後台解碼:引數=new string(引數.getbytes("iso8859-1"),"utf-8");
方式三(不改tomcat,改**):
前台編碼:在js中用encodeuri函式進行兩次編碼,即encodeuri(encodeuri(引數))
後台解碼:引數=urldecoder.decode(引數,"utf-8");
URL請求傳遞中文引數亂碼
有的時候我們傳送url請求會帶有中文引數,例如a.jap?name 鎖,這樣直接傳送會產生中文亂碼的問題。js var url window.location.search var condition url.split alert condition 1 得到 e6 b5 b4 e7 9b 86 ...
url帶中文引數顯示亂碼的問題
最近要上個專案,其實很簡單的東西,就是拼接乙個url,不過url中的引數需要urlencode編碼的,其實對我來說,這個問題很好解決,c 用httputility.urlencode來進行編碼,asp用server.urlencode來進行編碼。問題解決了嗎?問題剛剛開始 因為這個公用轉向檔案,是針...
url帶中文引數顯示亂碼的問題
最近要上個專案,其實很簡單的東西,就是拼接乙個url,不過url中的引數需要urlencode編碼的,其實對我來說,這個問題很好解決,c 用httputility.urlencode來進行編碼,asp用server.urlencode來進行編碼。問題解決了嗎?問題剛剛開始 因為這個公用轉向檔案,是針...