首页 > 其他 > 详细

解决浏览器向服务器传递参数时中文乱码问题

时间:2014-11-08 00:47:57      阅读:390      评论:0      收藏:0      [点我收藏+]

 

解决Get方式的中文参数的乱码问题:
方式1:
前提是Tomcat是默认的配置:

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编码:

param = encodeURI(param);
param = encodeURI(param);

通过URL传值到服务端。
2.在Action中再进行一次URL解码(因为在req.getParameter(..)时已经做过一次URL解码了)

String param = URLDecoder.decode(req.getParameter(param)); 

 

struts标签解决乱码问题:

在struts标签中这样写,就可以进行两次URL编码了,前提是在struts.xml中要设置一下:
<!-- 设置为在OGNL中可以调用静态方法 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />

<s:a action="processDefinitionAction_delete" onclick="return delConfirm()">
    <s:param name="key" value="%{@java.net.URLEncoder@encode(key, ‘utf-8‘)}"></s:param>
    删除
</s:a>

 

解决浏览器向服务器传递参数时中文乱码问题

原文:http://www.cnblogs.com/zfrblog/p/4082605.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!