JS传递中文参数出现乱码的解决办法
2020-12-13 03:58
标签:style blog class code c java 一、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传递中文参数出现乱码的解决办法,搜素材,soscw.com JS传递中文参数出现乱码的解决办法 标签:style blog class code c java 原文地址:http://www.cnblogs.com/mingyue1818/p/3730184.html //显示我创建的任务
function showTask(){
var str1 = $("#str1").val();
window.location.href="http://www.soscw.com/${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