从js向Action传中文参数出现乱码问题的解决方法
2013-12-29 16:38
846 查看
做项目的时候,发现Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题;但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象。几经询问百度,上面说法很多。
经过实践发现下面的方法可以解决中文乱码问题:
JSP的JS中:中文参数用encodeURI(encodeURI(中文参数)),经过两次转码。例如:
复制代码 代码如下:
function show(next,id,realName){
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName));
document.forms['f2'].submit();
}
其中 realName是中文参数。故在提交的URL中将realName转码两次。encodeURI(encodeURI(realName))
Action中:接收中文参数时解码。用:java.net.URLDecoder.decode(realName,"UTF-8");
如:
复制代码 代码如下:
String realName = ServletActionContext.getRequest().getParameter("realName");
try {
realName = java.net.URLDecoder.decode(realName,"UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
经过上述处理,问题解决。
经过实践发现下面的方法可以解决中文乱码问题:
JSP的JS中:中文参数用encodeURI(encodeURI(中文参数)),经过两次转码。例如:
复制代码 代码如下:
function show(next,id,realName){
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName));
document.forms['f2'].submit();
}
其中 realName是中文参数。故在提交的URL中将realName转码两次。encodeURI(encodeURI(realName))
Action中:接收中文参数时解码。用:java.net.URLDecoder.decode(realName,"UTF-8");
如:
复制代码 代码如下:
String realName = ServletActionContext.getRequest().getParameter("realName");
try {
realName = java.net.URLDecoder.decode(realName,"UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
经过上述处理,问题解决。
您可能感兴趣的文章:
相关文章推荐
- 用javascript实现div可编辑的常见方法
- 多种方式实现JS调用后台方法进行数据交互
- 原生JS实现LOADING效果
- html的DOM中Event对象onblur事件用法实例
- 详解JS中的快速排序与冒泡
- 微信小程序 Animation实现图片旋转动画示例
- Web技术实现移动监测的介绍
- JavaScript 学习笔记
- js解析xml文件
- chrome javascript Uncaught SecurityError: An attempt was made to break through the security policy of the user agent
- JAVASCRIPT加密方法,JS加密解密综述(7种)
- jsp中的action
- JS 判断 浏览器 是否禁用Cookie
- jsp中的directive
- jsp中的表达式
- jsp中的scriptlet
- jsp中变量声明中!的区别
- PrintWriter与JspWriter的区别与联系
- JAVASCRIPT 当鼠标移开时 已弹出子菜单自动消失
- Js中的window.parent ,window.top,window.self 详解