工作中遇到j(luò)sp關(guān)于取得地址欄中文亂碼的問題,經(jīng)過查找,終于找到了解決的方法,下面為3種情況說明:
1、前臺javascript編碼+后臺jsp解碼方式:
前臺:
<sccript>
for(i=0;i<_input.length;i++){
if(_input[i].type=="text"){
_input[i].value=encodeURI(_input[i].value);
}
}
uploadForm.action="selPerson.jsp";
uploadForm.submit();
</script>
這里先對表單里的數(shù)據(jù)進(jìn)行編碼.encodeURL這個(gè)方法轉(zhuǎn)出來的編碼是UTF-8的.
或者通過鏈接傳遞
<a href="selPerson.jsp?param=encodeURI('中文字')">
后臺:
<%@ page import="java.net.URLDecoder"%>
URLDecoder.decode(request.getParameter("param").getString(),"UTF-8"));
2、前臺javascript編碼+后臺javascript解碼方式
前臺:
<a href="selPerson.jsp?param=escape('中文字')">
后臺:
unescape(param)
3、前臺jsp編碼+后臺jsp解碼方式
前臺:
<%@ page import="java.net.URLEncoder"%>
<a href="selPerson.jsp?param=<%=URLEncoder.encode("中文字")%>">
后臺:
<%@ page import="java.net.URLDecoder"%>
URLDecoder.decode(request.getParameter("param"))
因?yàn)樵趈sp中取不到j(luò)avascript定義的變量值,javascript可以取到j(luò)sp中的變量值,我們一般常用的就是第一種方式。