JS传递中文参数出现乱码的解决办法
一、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传递中文参数出现乱码的解决办法的更多相关文章
- springmvc将处理后的数据通过get方法传给页面时,可能会出现乱码。下面对于get请求中文参数出现乱码提出解决办法。
对于get请求中文参数出现乱码解决办法有两个: 1.修改tomcat配置文件(tomcat--->conf--->server.xml)添加编码与工程编码一致,如下: <Connec ...
- 使用jquery的$.ajax向服务端传递中文,避免乱码的解决办法!
在js里,对中文使用下面的方法 encodeURIComponent(var) 函数 就ok了!
- SSH通过超链接传递中文参数出现乱码问题
通过超链接传递中文参数出现乱码问题 tomcat中的server.xml文件中修改如下配置: <Connector port="8080" protocol="HT ...
- 通过URL传递中文参数的乱码处理
环境:web.xml中配置了 <filter> <filter-name>encodingFilter</filter-name> <filter-class ...
- [转]asp.net URL中包含中文参数造成乱码的解决方法
本文转自:http://www.jb51.net/article/22437.htm 问题: 前段时间,在系统中做了一个类似于友情链接的功能块,一直运行良好,直到有一天加了类似于以下的链接地址:htt ...
- DELPHI7调用BERLIN中间件的中文字段名乱码的解决办法
MSSQL数据库的表使用中文字段名,BERLIN开发的DATASNAP中间件,DELPHI7调用中间件的查询方法返回数据给CLIENTDATASET.DATA,发现中文字段名乱码,中文字段名的值可以正 ...
- VS2008中MFC界面编程Caption中文全是乱码的解决办法 -转载
一.问题 在预览状态下可能看到中文,但是编译运行后对话框中的中文全是问号.即使你用的VS中文版,即使你也用了Unicode编码,即使有条件编译 #ifdef _WIN32LANGUAGE LANG_C ...
- 【转】Source Insight中文注释为乱码的解决办法
我网上查了一堆解决办法,但是都是2017年以前的,并且都是针对于source insight 3.5及以下版本的解决方案,软件版本都到4.0了,应该有新方法出现. 干货:Source Insight ...
- Mysql向存储过程中传递中文参数变成乱码的解决方案
今天做程序需要用到一个存储过程,然后用php程序调用. 存储过程如下: delimiter $$ CREATE PROCEDURE disagree_upgrade_detail(a int,b t ...
随机推荐
- 【cover-view、cover-image】 覆盖组件说明
cover-view.cover-image 这两类覆盖组件用于显示在一些特殊组件上方(map.video.canvas.camera.live-player.live-pusher). 这类组件一般 ...
- Struts2(八.添加用户多张照片实现文件上传功能)
1.modify.jsp 在modify.jsp修改用户信息页面实现文件上传,添加用户照片的功能 如果是文件上传,method必须是post,必须指定enctype <form method=& ...
- JVM学习--jvm监控和故障处理工具
java虚拟机性能监控常用命令 Sun JDK监控和故障处理命令有jps.jstat.jinfo.jmap.jhat.jstack . 1.jps jps:JVM Process Status Too ...
- 中文乱码的处理—@北河的ppt
- 【MFC】VS2017新建完MFC后,没有界面,只有代码
问题描述:双击.rc文件后提示在另一个编辑器中打开 解决方法整合: 1----- 打开工程之前先把.rc文件改个名称,然后打开工程双击解决方案管理器的.rc文件, 会显示"载入失败" ...
- springMVC第二章
springMVC第二章 一.URL 映射 可以同时设置多个URL来访问某个控制器或方法.设置value属性: @RequestMapping(value= {"/grade",& ...
- nginx web服务器的安装使用
nginx是一个web服务器(高性能web服务器),类似于apache服务器和iis服务器,由于nginx服务器具有轻量级高并发的特点,目前nginx的使用已经超越了apache. nginx介绍:n ...
- Kali信息收集工具-dimtry
帮助文档 -s和-e参数需要用到google搜索 1.获取whois主机ip信息 2.扫描端口,根据banner信息判断服务
- 二 Capacity Scheduler 计算能力调度器
官网的写的太难懂,参考:http://www.360doc.com/content/14/0603/14/14935022_383254798.shtml Capacity Scheduler 一种可 ...
- 衡量生活成本:消费者价格指数(CPI, Consumer Price Index)
经济学家应该如何把经济中的许多价格加总成一个单一指数,从而能够衡量价格的总体水平呢?他们可以简单地计算所有产品与服务价格的平均值,但是这种方法的不足之处是把所有的产品与服务等同处理.由于人们购买的鸡比 ...