如果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");
本文详细介绍了在使用GET和POST方式提交包含中文的URL时,必须同时对URL进行编码以及设置服务器的编解码方式。通过使用JavaScript的window.encodeURIComponent函数对URL参数进行编码,并在服务器端通过request.setCharacterEncoding(UTF-8)或修改Tomcat配置文件等方式设置编解码方式,确保数据正确传输。

1万+

被折叠的 条评论
为什么被折叠?



