如果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");