如果URL含有中文而且以GET方式提交,必須同時對URL進行編碼和設置服務器的編解碼方式
1.對URL進行編碼,可以利用JS的window.encodeURIComponent函數
例如:
var clientIdOrName = window.document.getElementById("clientIdOrName");
var clientIdOrNameValue = clientIdOrName.value; // clientIdOrNameValue是中文
window.self.location="../servlet/FlowCardServlet?command=selectClient&queryStr=" + window.encodeURIComponent(clientIdOrNameValue);
此例就是把中文按照UTF-8的方式對clientIdOrNameValue進行編碼
2.設置服務器的編解碼方式,有兩種方式
第一種,例如
String queryStr = new String(request.getParameter("queryStr").getBytes("ISO8859-1"), "UTF-8");
第二種,修改Tomcat的配置文件,此處以tomcat6爲例子,需要修改server.xml文件,如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
如果URL含有中文而且以POST方式提交,同樣必須同時對URL進行編碼和設置服務器的編解碼方式
1.對URL進行編碼同上面
2.設置服務器的編解碼方式,request.setCharacterEncoding("UTF-8");