通過URL傳遞中文引數的亂碼處理

2022-08-24 12:18:18 字數 1363 閱讀 5999

環境:

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...