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

  //显示我创建的任务
  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传递中文参数出现乱码的解决办法的更多相关文章

  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. 【cover-view、cover-image】 覆盖组件说明

    cover-view.cover-image 这两类覆盖组件用于显示在一些特殊组件上方(map.video.canvas.camera.live-player.live-pusher). 这类组件一般 ...

  2. Struts2(八.添加用户多张照片实现文件上传功能)

    1.modify.jsp 在modify.jsp修改用户信息页面实现文件上传,添加用户照片的功能 如果是文件上传,method必须是post,必须指定enctype <form method=& ...

  3. JVM学习--jvm监控和故障处理工具

    java虚拟机性能监控常用命令 Sun JDK监控和故障处理命令有jps.jstat.jinfo.jmap.jhat.jstack . 1.jps jps:JVM Process Status Too ...

  4. 中文乱码的处理—@北河的ppt

  5. 【MFC】VS2017新建完MFC后,没有界面,只有代码

    问题描述:双击.rc文件后提示在另一个编辑器中打开 解决方法整合: 1----- 打开工程之前先把.rc文件改个名称,然后打开工程双击解决方案管理器的.rc文件, 会显示"载入失败" ...

  6. springMVC第二章

    springMVC第二章 一.URL 映射 可以同时设置多个URL来访问某个控制器或方法.设置value属性: @RequestMapping(value= {"/grade",& ...

  7. nginx web服务器的安装使用

    nginx是一个web服务器(高性能web服务器),类似于apache服务器和iis服务器,由于nginx服务器具有轻量级高并发的特点,目前nginx的使用已经超越了apache. nginx介绍:n ...

  8. Kali信息收集工具-dimtry

    帮助文档 -s和-e参数需要用到google搜索 1.获取whois主机ip信息 2.扫描端口,根据banner信息判断服务  

  9. 二 Capacity Scheduler 计算能力调度器

    官网的写的太难懂,参考:http://www.360doc.com/content/14/0603/14/14935022_383254798.shtml Capacity Scheduler 一种可 ...

  10. 衡量生活成本:消费者价格指数(CPI, Consumer Price Index)

    经济学家应该如何把经济中的许多价格加总成一个单一指数,从而能够衡量价格的总体水平呢?他们可以简单地计算所有产品与服务价格的平均值,但是这种方法的不足之处是把所有的产品与服务等同处理.由于人们购买的鸡比 ...