測試環境:
伺服器tomcat5.0,
開發工具Myeclipse6.5,
過濾器已經配置,編碼utf-8。
方法一:修改Tomcat配置
假設web服務使用8080作為連接埠,修改/conf/server.xml,增加紅色這段
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8"/>
傳值代碼
Jsp代碼
var url= "/yourwebapp/test.do?field1=測試例子"; window.open(url, "", "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,top=192,left=256,width=650,height=350");
擷取值代碼
Java代碼
String field1=request.getParameter("field1"); if(null == field1) { field1=request.getParameter("field1").trim(); }
方法二:使用java.net.URLEncoder與java.net.URLDecoder
假設沒有使用方法一,可以採用第二種方法。
傳值代碼
Jsp代碼
var url= "/yourwebapp/test.do?field1=<%=java.net.URLEncoder.encode("測試例子","UTF-8")%>"; window.open(url, "", "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,top=192,left=256,width=650,height=350");
擷取值代碼
Java代碼
String field1=request.getParameter("field1"); if(null == field1) { field1=request.getParameter("field1").trim(); field1=java.net.URLDecoder.decode(field1,"UTF-8"); //tomcat預設使用ISO-8859-1進行URLEncoding,需要將其轉換成我們需要的編碼 field1=new String(field1.getBytes("ISO-8859-1"),"UTF-8"); }