加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

遇到问题---getJson传给后台的参数乱码

发布时间:2020-12-16 19:10:39 所属栏目:百科 来源:网络整理
导读:项目中使用spring sturts action 传值 出现乱码 而且google浏览器中没乱码 ie下传值乱码 在jsp中使用getJson传值 $.getJSON("%=basePath%/query/searchCompareTable?geneName="+geneName+"fieldName="+fieldName+"minValue="+minValue+"maxValue="+maxValue,


项目中使用spring sturts action 传值 出现乱码 而且google浏览器中没乱码 ie下传值乱码


在jsp中使用getJson传值

$.getJSON("<%=basePath%>/query/searchCompareTable?geneName="+geneName+"&fieldName="+fieldName+"&minValue="+minValue+"&maxValue="+maxValue,function(datatable) {


其中geneName 和 fieldName是 中文或者英文名



java中 action接收为set接收

 private String geneName;
	private String fieldName;
	private double minValue;
	private double maxValue;
	public void setGeneName(String geneName) {
		this.geneName = geneName;
	}
	public void setFieldName(String fieldName) {
		this.fieldName = fieldName;
	}
public void setMinValue(double minValue) {
		this.minValue = minValue;
	}
public void setMaxValue(double maxValue) {
		this.maxValue = maxValue;
	}



这个时候服务器的tomcat的server.xml配置 已经设置成 utf-8




jsp页面头部为

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<%@taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta charset="UTF-8">
<title>gseInfo</title>
<link type="text/css" rel="stylesheet" href="css/skin.css" />
<link type="text/css" rel="stylesheet" href="css/genesboxUI.css" />
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script src="js/controls.js"></script>
<script>
	document.createElement('header');
	document.createElement('nav');
	document.createElement('aside');
	document.createElement('section');
</script>


这个时候发现 中文参数 乱码




解法一

解决办法

jsp中 getJson 中英文参数加上一次转码

encodeURI(geneName)

$.getJSON("<%=basePath%>/query/searchCompareTable?geneName="+encodeURI(geneName)+"&fieldName="+encodeURI(fieldName)+"&minValue="+minValue+"&maxValue="+maxValue,function(datatable) {

action中不解码





解法二


解决办法

jsp中 getJson 中英文参数加上两次转码

encodeURI(encodeURI(geneName))

encodeURI(encodeURI(fieldName))

如下:

$.getJSON("<%=basePath%>/query/searchCompareTable?geneName="+encodeURI(encodeURI(geneName))+"&fieldName="+encodeURI(encodeURI(fieldName))+"&minValue="+minValue+"&maxValue="+maxValue,function(datatable) {


action中解码

	compareResultHtml="";
		try {
			geneName=URLDecoder.decode(geneName,"utf-8");
			fieldName=URLDecoder.decode(fieldName,"utf-8");
		} catch (UnsupportedEncodingException e1) {			
			e1.printStackTrace();
		}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读