頁面跳轉傳參後臺亂碼的問題
阿新 • • 發佈:2018-12-31
背景前提
小弟最近做個jsp頁面,其中有個查詢按鈕,目標是點了查詢之後,將文字框裡面的內容作為引數傳到後臺經行查詢。然而在位址列處所傳引數中文沒問題,但是到了後臺是亂碼,我確定肯定自己已經設定好了編碼過濾器。思前想後懷疑是自己跳轉的地方根本不會走過濾器,因為是通過js程式碼跳轉的。還是貼上程式碼吧:
function search(){
var content = document.getElementById("name").value;
window.location.href='/Test/RoleServlet?content='+encodeURI (encodeURI(content));
}
後臺接收引數
URLDecoder.decode(req.getParameter("content"), "UTF-8")
總結
後來我查詢資料,有了一些自己的低見 1.首先解釋為什麼會encodeURI兩次,解碼URLDecoder.decode只用一次。這是因為後臺req.getParameter時候,伺服器會自動解碼一次,所以這裡加碼了兩次,而後臺只解碼一次。 2.那難道不可以只encodeURI一次,後臺不解碼不就好了嘛? 可以是可以,但是要把容器的解碼設定成UTF-8(注意是容器的編碼而不是編碼過濾器就可以的)有同學說:位址列傳中文的嗎? 就是tomcat server.xml設定下!其他的話就是過濾器,有待考究,暫時沒試驗