从js向Action传中文参数出现乱码问题的解决方法
做项目的时候,发现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();
}
经过上述处理,问题解决。
相关推荐
-
ThinkPHP3.1新特性之Action参数绑定
ThinkPHP3.1版的Action参数绑定功能提供了URL变量和操作方法的参数绑定支持,这一功能可以使得你的操作方法定义和参数获取更加清晰,也便于跨模块调用操作方法.这一新特性对以往的操作方法使用没有任何影响,你也可以用新的方式来改造以往的操作方法定义. Action参数绑定的原理是把URL中的参数(不包括分组.模块和操作地址)和控制器的操作方法中的参数进行绑定.例如,我们给Blog模块定义了两个操作方法read和archive方法,由于read操作需要指定一个id参数,archive方法需
-
在页面上用action传递参数到后台出现乱码的解决方法
页面上用jquery ajax 复制代码 代码如下: function createQS(name){ var value = encodeURI(name); var queryString = {key:value}; return queryString;} //检索姓名方法function jiansuoByName(k,name){ if (name == '') { alert("请输入检索的内容"); return; } $.post(basePath+"
-
NopCommerce架构分析之(五)Model绑定Action参数
asp.net MVC中Action参数不只是一些基本类型,也支持实体参数.那么从客户端传来的数据如何映射或转换成实体对象呢?就是通过实体绑定类ModelBinder.此系列类在请求转化为后台Controller的Action方法前,捕获传递过来的数据,并对其进行解析和转换,最终为实体类对象. 在系统启动前,Global.asax.cs中的方法Application_Start方法调用下面代码定义参数转换规则. //model binders ModelBinders.Binders.Add(t
-
Action获取请求参数的三种方式
方式一:Action本身作为Model对象,通过属性注入(Setter)方法讲参数数据封装到Action中 具体为:在Action中,提供和参数名相同的几个属性,并为其提供set方法,那么,该参数会被自动封装 到该几个属性中. 方式二:创建独立的Model对象,还是通过属性注入的方法将请求数据封装到Model对象中 具体为:另外创建一个专门的类,并在其中添加几个和请求参数名相同的属性,,此时,在表单中,需要讲参数名, 写成Model的一个具体对象名.参数名的方式,然后在Action中,需要定义一
-
从js向Action传中文参数出现乱码问题的解决方法
做项目的时候,发现Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题:但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象.几经询问百度,上面说法很多. 经过实践发现下面的方法可以解决中文乱码问题: JSP的JS中:中文参数用encodeURI(encodeURI(中文参数)),经过两次转码.例如: 复制代码 代码如下: function show(next,id,realName){ document.forms['f2'].a
-
Mybatis传list参数调用oracle存储过程的解决方法
怎么利用MyBatis传List类型参数到数据库存储过程中实现批量插入数据? MyBatis中参数是List类型时怎么处理?大家都知道MyBatis批处理大量数据是很难做到事务回滚的(事务由Spring管理),都将逻辑写在存储中又是及其头疼的一件事(参数长度也有限制),那么我想的是将参数在后台封装为单个或多个list集合,直接通过MyBatis将此参数传到数据库存储过程中,一来摆脱了MyBatis批量插入数据的诸多限制(例如:不能实时返回主键.foreach标签循环集合长度有限制),二来就是在存
-
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
在用ThinkPHP做tags标签的时候,出现了一个问题,就是能获取到参数,但是查不出相应的结果.查看数据库发现数据是存在的.问题出在哪了呢? 形如http:/www.XXXX.com/tags/index/%E8%87%AA%E5%8A%A8%E9%AA%8C%E8%AF%81.html的调用 参数是经过urlencode()编码了的,使用urldecode()函数进行解码,再进行查询仍然没有结果. 紧接着测试转换编码iconv()函数,结果成功了. 浏览器默认的编码是GB2312的,而这个项
-
jsp传参 servlet接收中文乱码问题的解决方法
在公司实习了8个月,一直都是做android和h5的,但是发现做程序连一点服务都不会该怎么办,所以最近开始学起了java,不知道是不是因为框架学多了,现在看起springmvc框架比以前看起来简单太多了,这里我是准备从hibernate开始学习,毕竟数据是根本嘛,首先我用的是hibernate+servlet,但是在jsp页面传参到servlet的时候中文一直乱码,我尝试了好多方法,最后还是解决了. 第一,首先看清项目的编码,jsp页面的编码 第二,修改tomcat 下面的server.xml文
-
JSP页面中超链接传递中文参数出现乱码问题解决方法
本文实例讲述了JSP页面中超链接传递中文参数出现乱码问题解决方法.分享给大家供大家参考,具体如下: 这里分析超链接传递中文参数,在接受页面中出现乱码问题的解决方法. 解决方法: 在接受页面里可以如下处理, 复制代码 代码如下: <%=new String(request.getParameter("变量名字").getBytes("ISO-8859-1")) %> 注意这里用的是 new String() 创建一个新的字符串 例题: 页面一: <h
-
解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题
新配置一个spring的MVC项目,发现对Get请求的中文参数出现了乱码: 查看了SpingMVC中关于编码的配置(在web.xml中),如下: <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param>
-
ajax传送参数含有特殊字符的快速解决方法
JQuery AJAX中遇到这样一个问题,参数中包含特殊字符,比如&'#@等, 这时执行AJAX的时候就会出问题,因为所传的参数变了.看个示例就明白: 方案一: $.ajax({ url: '/ashx/ajax.ashx', type: 'post', data: 'option=delete&name=11&adb, success: function (data) { if (data != 'error ') { } } }); ' 上面执行的ajax就是异步删除一个nam
-
ASP.NET Core 2.0 带初始参数的中间件问题及解决方法
问题 如何在ASP.NET Core 2.0向中间件传入初始参数? 答案 在一个空项目中,创建一个POCO(Plain Old CLR Object)来保存中间件所需的参数: public class GreetingOptions { public string GreetAt { get; set; } public string GreetTo { get; set; } } 添加一个中间件: public class GreetingMiddleware { private readon
-
用ajax传递json到前台中文出现问号乱码问题的解决办法
我使用的Springmvc,在controller层传输一个json到前台,后台显示没问题,中文正常显示而到了前台 中文就变成了问号. 后来发现,因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为utf-8,所以传中文会出现乱码. 这里我使用了注解来解决: @RequestMapping(value="/echarts.do", produces =
-
关于JS中setTimeout()无法调用带参函数问题的解决方法
本文实例分析了JS中setTimeout()无法调用带参函数问题的解决方法.分享给大家供大家参考,具体如下: 解决方法:重写setTimeout() 方法,需要用到闭包函数.如下: var _st = window.setTimeout; window.setTimeout = function(fRef, mDelay){ if (typeof fRef == 'function') { var argu = Array.prototype.slice.call(arguments, 2);
随机推荐
- Oracle结合Mybatis实现取表TOP 10条数据
- thinkPHP5.0框架模块设计详解
- 让侮辱中国人的法国cnn网站完蛋
- ios多种语言的本地化思路
- javascript 打字效果的文字特效
- php ob_flush,flush在ie中缓冲无效的解决方法
- ThinkPHP连接Oracle数据库
- python使用7z解压软件备份文件脚本分享
- 首届世界CSS设计大赛结果揭晓
- jQuery实现仿QQ在线客服效果的滚动层代码
- 电脑英文缩写大全
- Wireshark基本介绍和学习TCP三次握手
- SQL数据分页查询的方法
- android开发中获取手机分辨率大小的方法
- 用示例说明filter()与find()的用法以及children()与find()的区别分析
- Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
- JavaScript中使用指数方法Math.exp()的简介
- python实现简单的计时器功能函数
- java解析xml汇总_动力节点Java学院整理
- java 获取一组数据中的最大值和最小值