環境:
web.xml中配置了
<filter
>
<
filter-name
>encodingfilter
filter-name
>
<
filter-class
>
org.springframework.web.filter.characterencodingfilter
filter-class
>
<
init-param
>
<
param-name
>encoding
param-name
>
<
param-value
>utf-8
param-value
>
init-param
>
<
init-param
>
<
param-name
>forceencoding
param-name
>
<
param-value
>true
param-value
>
init-param
>
filter
>
通過url傳遞引數時,可能不會通過web.xml的過濾器將編碼轉換為utf-8格式,所以在沒進行後台編碼轉換時,直接獲取到的引數值中文部分是亂碼。
然後在後台**中對引數(param)進行了編碼轉換
urldecoder.decode(new string(param.getbytes("iso8859-1"),"utf-8"),"utf-8");
通過這個方式獲取的引數值(中文1個其他為數字引數)亂碼變成兩個?( 問號)。
經過搜尋資料。。測試。。最後通過在url傳參前,對引數進行編碼後再傳才解決了這個問題。同時以上的編碼解碼操作仍然是必須的。
url = "<%=path%>/test/test.do?test="+encodeuri(param);window.open(url);
通過這個方式終於解決了中文引數通過url傳遞的問題。
總結需要特殊處理的地方:
1.傳遞引數前用encodeuri()進行編碼
2.接收後使用urldecoder.decode(new string(param.getbytes("iso8859-1"),"utf-8"),"utf-8"); 來解碼獲得對應引數
這應該是在utf-8專案環境下通過url傳遞中文引數需要做的事情了。
URL傳遞中文引數亂碼問題
今天使用jquery傳送post請求時,傳遞的引數是中文的,接收是發現引數亂碼了!開始以為是頁面編碼問題,刪除檔案 新建,還有有此問題。後來在除錯中發現頁面獲取引數時正常,就是傳遞後獲取亂碼了,應該就是傳遞出錯了。網上搜了下,解決方法如下 1.頁面傳遞時 js傳遞 進行編碼設定 var userna...
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傳遞中文引數
send.html var key 測試 通常,如果我們直接將中文寫在url中,得到的卻是一堆亂碼 e6 b5 8b e8 af 95 因為這涉及到編碼問題。如果你設定了編碼方式為utf 8,則它會將中文編譯為英文,如果對應的頁面的編碼方式也為utf 8,則就直接顯示編譯後的中文 解決方法 1.en...