解决Get方式的中文参数的乱码问题:
方式1:
前提是Tomcat是默认的配置:java
key = new String(key.getBytes("iso8859-1"), "utf-8");
方式2:
在Tomcat的server.xml中设置:编码
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" (这是重点,表示获取参数解码时默认使用的编码类型) />
方式3:(推荐)
1.在页面中进行两次URL编码:spa
param = encodeURI(param);
param = encodeURI(param);
经过URL传值到服务端。
2.在Action中再进行一次URL解码(由于在req.getParameter(..)时已经作过一次URL解码了).net
String param = URLDecoder.decode(req.getParameter(param));
struts标签解决乱码问题:code
在struts标签中这样写,就能够进行两次URL编码了,前提是在struts.xml中要设置一下:
<!-- 设置为在OGNL中能够调用静态方法 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />server
<s:a action="processDefinitionAction_delete" onclick="return delConfirm()"> <s:param name="key" value="%{@java.net.URLEncoder@encode(key, 'utf-8')}"></s:param> 删除 </s:a>