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 ...
随机推荐
- Linux命令大全(非常全,史上最全)
最近学习Linux,最大的体验就是它的很多东西都需要由命令来进行控制,下面是我总结的一些命令,供大家参考: 系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 una ...
- 关于javascript的一个小问题,请问有人看出啥问题吗?
最近学习javascript,有一个问题挺奇怪的,先贴出代码: function binarySearch(){ var arr = [0,1,2,3]; var res = actbinarySea ...
- 单词 (Play on Words UVA - 10129 )
题目描述: 原题:https://vjudge.net/problem/UVA-10129 题目思路: 1.明显是判断欧拉路径 2.欧拉路径的两个条件 a.图连通 b.至多为两个奇点,且一个为起点一个 ...
- mapReduce入门教程
什么是MapReduce MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归纳)&q ...
- C指针函数中的局部变量返回
所谓指针函数其实就是 :一个函数的返回值为指针. 指针函数定义:返回类型标识符* 函数名(形参列表){函数体} eg: int* fun1(int n){} 指针函数和局部变量返回解析: 简 ...
- python作业:三级菜单(第一周)
一.作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 二.三级菜单 ...
- LeetCode - 13. Roman to Integer - 思考if-else与switch的比较 - ( C++ ) - 解题报告
1.题目: 原题:Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range ...
- JS中通过数组的方式操作字符串 数组是个好东西 ....
题目:使用JS将 var str="what are you nong sha lei",通过您的方法转换为"What Are You Nong Sha Lei" ...
- 关于PHP使用GD库生成的验证码无法在别处显示
https://segmentfault.com/q/1010000002522270
- lintcode-156-合并区间
156-合并区间 给出若干闭合区间,合并所有重叠的部分. 样例 给出的区间列表 => 合并后的区间列表: [ [ [1, 3], [1, 6], [2, 6], => [8, 10], [ ...