JS传递中文参数出现乱码的解决办法
2014-05-15 15:56
579 查看
一、window.open() 乱码:
JS中使用window.open("url?param="+paramvalue)传递参数出现乱码,提交的时候,客户端浏览器URL中显示参数是正确的,
但是传到了服务器端是是乱码。这种情况下需要在客户端对该参数进行编码,然后在服务器端解码即可。
1、JS客户端编码:
var selStr=document.getElementsByName('selStr')[0].value;
selStr=encodeURI(encodeURI(selStr));
window.open('printWindow.do?bm=j&selStr='+selStr+'');
注意:编码的时候需要使用两次encodeUri,写一个就是????号,写两个则输出: %4d%5a这种。
2、服务器端解码:
String tempSelStrs=request.getParameter("selStr").toString();
String selStr=java.net.URLDecoder.decode(tempSelStrs,"UTF-8");
二、SpringMVC,在JS用GET方式向后台传参出现乱码:
JS中代码:
后台代码:
JS中使用window.open("url?param="+paramvalue)传递参数出现乱码,提交的时候,客户端浏览器URL中显示参数是正确的,
但是传到了服务器端是是乱码。这种情况下需要在客户端对该参数进行编码,然后在服务器端解码即可。
1、JS客户端编码:
var selStr=document.getElementsByName('selStr')[0].value;
selStr=encodeURI(encodeURI(selStr));
window.open('printWindow.do?bm=j&selStr='+selStr+'');
注意:编码的时候需要使用两次encodeUri,写一个就是????号,写两个则输出: %4d%5a这种。
2、服务器端解码:
String tempSelStrs=request.getParameter("selStr").toString();
String selStr=java.net.URLDecoder.decode(tempSelStrs,"UTF-8");
二、SpringMVC,在JS用GET方式向后台传参出现乱码:
JS中代码:
//显示我创建的任务 function showTask(){ var str1 = $("#str1").val(); window.location.href="${pageContext.servletContext.contextPath }/workbench/task/query.html?str1="+encodeURI(encodeURI(str1));//GET方式传参 }
后台代码:
@RequestMapping(value = "query", method = RequestMethod.GET)//声明是GET方式传参 public String query(Model model, Task task, String pageNow,String pageSize, HttpServletRequest request) { try { //解决GET方式传参时参数乱码的问题 if(task.getStr1() != null ){ //将Bean中字段取出 task.setStr1(java.net.URLDecoder.decode(task.getStr1(),"UTF-8")); } //获取登录用户信息 User user = (User) request.getSession().getAttribute("homeUser"); Integer userId = user.getUserId();//获取登录用户ID task.setUserId(userId); task.setUserNickName(user.getUserNickname()+";");//登录用户昵称 task.setDoTaskId(String.valueOf(user.getUserId())+";");//登录用户ID //1、获取下拉框数据 Map<String,List<Map<String,String>>> map = taskService.getDropDownData(userId); model.addAttribute("map", map); if("".equals(task.getStr1()) || task.getStr1()==null){ task.setStr1("可输入任务、执行人查找"); } model.addAttribute("task", task); PageView pageView = null; if (Common.isEmpty(pageNow)) { pageView = new PageView(1); } else { pageView = new PageView(Integer.parseInt(pageNow)); } //选择分页条数 if(pageSize!=null){ pageView.setPageSize(Integer.parseInt(pageSize)); model.addAttribute("pageSize", pageSize); } else { pageView.setPageSize(10); model.addAttribute("pageSize", 10); } //用于查询所有数据 if("可输入任务、执行人查找".equals(task.getStr1())){ task.setMyTask(null); }else{ task.setMyTask(task.getStr1()); } pageView = taskService.query(pageView, task); model.addAttribute("pageView", pageView); } catch (Exception e) { e.printStackTrace(); } return Common.ROOT_PATH + "/workbench/task/list"; }
相关文章推荐
- js window.open 传递中文参数出现乱码解决办法
- js window.open 传递中文参数出现乱码解决办法
- js window.open 传递中文参数出现乱码解决办法
- js代替表单提交带中文的参数出现乱码的解决办法
- spring mvc url 参数传递出现中文乱码解决办法
- spring mvc url 参数传递出现中文乱码解决办法
- jsp页面中href到另一个页面传递参数,参数中有中文出现乱码的解决办法!
- 关于struts2.1.6前台传递中文参数到后台action出现乱码问题的解决办法
- js传递中文参数的url到asp(jscript)解释得到的中文参数为乱码的解决方法
- JavaScript(js) 前台 参数传递乱码 转码 问题--已解决! 中文字符乱码
- js、URL传递含有中文参数时的乱码问题解决
- 传中文参数到Controller出现中文乱码,解决办法
- 关于JAVA中URL传递中文参数,取值是乱码的解决办法
- js提交表单中包含中文参数值,request请求参数正常,服务器端接收出现乱码解决思路
- 中文作为参数传入 window.showModalDialog出现乱码的解决办法
- 解决Java中URL传递中文参数时出现乱码的问题
- 英文环境 JAVASCRIPT(JS)提示中文出现乱码的解决办法
- js window.open将参数传递到struts中出现的乱码问题解决
- JS传中文参数乱码时解决办法
- Html中载入含中文字符的js文件时出现中文乱码的解决办法