项目中使用spring sturts action 传值 出现乱码 而且google浏览器中没乱码 ie下传值乱码
在jsp中使用getJson传值
- $.getJSON("<%=basePath%>/query/searchCompareTable?geneName="+geneName+"&fieldName="+fieldName+"&minValue="+minValue+"&maxValue="+maxValue,function(datatable) {
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();
- }