一、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中代码:

  1.   //显示我创建的任务
  2.   function showTask(){
        var str1 = $("#str1").val();
        window.location.href="${pageContext.servletContext.contextPath }/workbench/task/query.html?str1="+encodeURI(encodeURI(str1));//GET方式传参
  3.   }

后台代码:

  1.   @RequestMapping(value = "query", method = RequestMethod.GET)//声明是GET方式传参
  2. public String query(Model model, Task task, String pageNow,String pageSize,
  3. HttpServletRequest request) {
  4.  
  5. try {
  6. //解决GET方式传参时参数乱码的问题
  7. if(task.getStr1() != null ){
              //将Bean中字段取出
  8. task.setStr1(java.net.URLDecoder.decode(task.getStr1(),"UTF-8"));
  9. }
  10.  
  11. //获取登录用户信息
  12. User user = (User) request.getSession().getAttribute("homeUser");
  13. Integer userId = user.getUserId();//获取登录用户ID
  14. task.setUserId(userId);
  15. task.setUserNickName(user.getUserNickname()+";");//登录用户昵称
  16. task.setDoTaskId(String.valueOf(user.getUserId())+";");//登录用户ID
  17.  
  18. //1、获取下拉框数据
  19. Map<String,List<Map<String,String>>> map = taskService.getDropDownData(userId);
  20. model.addAttribute("map", map);
  21.  
  22. if("".equals(task.getStr1()) || task.getStr1()==null){
  23. task.setStr1("可输入任务、执行人查找");
  24. }
  25. model.addAttribute("task", task);
  26.  
  27. PageView pageView = null;
  28.  
  29. if (Common.isEmpty(pageNow)) {
  30. pageView = new PageView(1);
  31. } else {
  32. pageView = new PageView(Integer.parseInt(pageNow));
  33. }
  34.  
  35. //选择分页条数
  36. if(pageSize!=null){
  37. pageView.setPageSize(Integer.parseInt(pageSize));
  38. model.addAttribute("pageSize", pageSize);
  39. } else {
  40. pageView.setPageSize(10);
  41. model.addAttribute("pageSize", 10);
  42. }
  43.  
  44. //用于查询所有数据
  45. if("可输入任务、执行人查找".equals(task.getStr1())){
  46. task.setMyTask(null);
  47. }else{
  48. task.setMyTask(task.getStr1());
  49. }
  50. pageView = taskService.query(pageView, task);
  51. model.addAttribute("pageView", pageView);
  52.  
  53. } catch (Exception e) {
  54. e.printStackTrace();
  55. }
  56.  
  57. return Common.ROOT_PATH + "/workbench/task/list";
  58. }

JS传递中文参数出现乱码的解决办法的更多相关文章

  1. springmvc将处理后的数据通过get方法传给页面时,可能会出现乱码。下面对于get请求中文参数出现乱码提出解决办法。

    对于get请求中文参数出现乱码解决办法有两个: 1.修改tomcat配置文件(tomcat--->conf--->server.xml)添加编码与工程编码一致,如下: <Connec ...

  2. 使用jquery的$.ajax向服务端传递中文,避免乱码的解决办法!

    在js里,对中文使用下面的方法 encodeURIComponent(var) 函数 就ok了!

  3. SSH通过超链接传递中文参数出现乱码问题

    通过超链接传递中文参数出现乱码问题 tomcat中的server.xml文件中修改如下配置: <Connector port="8080" protocol="HT ...

  4. 通过URL传递中文参数的乱码处理

    环境:web.xml中配置了 <filter> <filter-name>encodingFilter</filter-name> <filter-class ...

  5. [转]asp.net URL中包含中文参数造成乱码的解决方法

    本文转自:http://www.jb51.net/article/22437.htm 问题: 前段时间,在系统中做了一个类似于友情链接的功能块,一直运行良好,直到有一天加了类似于以下的链接地址:htt ...

  6. DELPHI7调用BERLIN中间件的中文字段名乱码的解决办法

    MSSQL数据库的表使用中文字段名,BERLIN开发的DATASNAP中间件,DELPHI7调用中间件的查询方法返回数据给CLIENTDATASET.DATA,发现中文字段名乱码,中文字段名的值可以正 ...

  7. VS2008中MFC界面编程Caption中文全是乱码的解决办法 -转载

    一.问题 在预览状态下可能看到中文,但是编译运行后对话框中的中文全是问号.即使你用的VS中文版,即使你也用了Unicode编码,即使有条件编译 #ifdef _WIN32LANGUAGE LANG_C ...

  8. 【转】Source Insight中文注释为乱码的解决办法

    我网上查了一堆解决办法,但是都是2017年以前的,并且都是针对于source insight 3.5及以下版本的解决方案,软件版本都到4.0了,应该有新方法出现. 干货:Source Insight ...

  9. Mysql向存储过程中传递中文参数变成乱码的解决方案

    今天做程序需要用到一个存储过程,然后用php程序调用.  存储过程如下: delimiter $$ CREATE PROCEDURE disagree_upgrade_detail(a int,b t ...

随机推荐

  1. Linux命令应用大词典-第36章 密码和证书管理

    36.1 pwdhash:密码哈希生成器 36.2 mkpasswd:生成应用于用户的新密码 36.3 keytool:密钥和证书管理工具 36.4 certutil:证书服务器管理工具 36.5 v ...

  2. Linux命令应用大词典-第25章 备份与还原

    25.1 mkisofs:创建ISO9660/Joliet/hfs文件系统

  3. UniMelb Comp30022 IT Project (Capstone) - 2.Vuforia in Unity

    2 Vuforia in Unity Tutorial: https://www.youtube.com/watch?v=X6djed8e4n0&t=213s Preparation: Dow ...

  4. CSP201412-2:Z字形扫描

    引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...

  5. (转)Shadow Mapping

    原文:丢失,十分抱歉,这篇是在笔记上发现的.SmaEngine 阴影和级联部分是模仿UE的结构设计   This tutorial will cover how to implement shadow ...

  6. HTML/JSP中一些单书名号标签的用途<%-- --%><!-- --><%@ %><%! %><% %><%= %>

    注释 <%-- --%>是(JSP)隐式注释,不会在页面显示的注释 <!-- -->是(Html)显示注释,会在JSP页面显示 关于注释还有单行隐式注释//和多行隐式注释/* ...

  7. 【python 3.6】从网站抓图并存放到本地路径

    #!/usr/bin/python # -*- coding: UTF-8 -*- _author_ = 'BH8ANK' import urllib.request import re import ...

  8. Wordcount -- MapReduce example -- Mapper

    Mapper maps input key/value pairs into intermediate key/value pairs. E.g. Input: (docID, doc) Output ...

  9. 转战Java~

    记得16年5月份开始学的Java,当时就是为了学Hadoop才学的Java基础,之后Hadoop没学成,倒是学了Java Web的东西,当时就是玩玩,然后弄了个WeChat后台,就完事了.然后就又回到 ...

  10. MongoDB3.2 集群搭建

    一.集群的理论知识 1.1 集群成员 MongoDB的集群类似于GreenPlum集群,由一个入口节点负责任务分发与结果统计,分片结节负责执行任务.不同GP,多了一个config servers. 集 ...