JSP解決地址欄中傳遞中文字符亂碼的問題

2010-08-28 10:50:18來源:西部e網(wǎng)作者:

工作中遇到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中的變量值,我們一般常用的就是第一種方式。

關(guān)鍵詞:JSP