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

项目使用Spring Struts Action在IE浏览器下出现中文参数乱码问题。尽管Tomcat配置及jsp页面头部已设定为UTF-8,但GET请求的JSON数据仍出现乱码。解决方案包括:1) 在JSP中对JSON参数进行一次encodeURI转码,不需在Action中解码;2) 对JSON参数进行两次encodeURI转码,然后在Action中进行解码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


项目中使用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接收

### 解决HTTP响应中JSON数据出现乱码的方法 当遇到通过AJAX请求获取到的JSON数据出现中文乱码的情况时,这通常是因为客户端和服务端之间的字符集不匹配所引起的。为了确保整个流程中的编码一致性,可以从以下几个方面着手解决问题。 #### 设置正确的Content-Type头信息 服务端在发送JSON格式的数据之前应当设置`Content-Type`头部为`application/json;charset=UTF-8`,这样可以明确告知浏览器接收到的内容是以UTF-8编码的JSON字符串[^4]。 ```java response.setContentType("application/json;charset=utf-8"); ``` #### 配置Spring MVC框架处理JSON 对于基于Spring MVC的应用程序来说,在配置文件里加入相应的消息转换器可以帮助更好地解析和生成JSON对象。具体做法是在注解驱动下的适配器与映射器之间增加两个特定的消息转换器来支持不同类型的序列化操作[^2]: ```xml <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <!-- JSON 转换器 --> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> <!-- 字符串转换器 --> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> ``` #### 修改Tomcat服务器默认编码方式 即使应用程序内部已经指定了正确的编码格式,但如果Web容器本身没有被正确配置,则仍然可能出现乱码现象。因此还需要检查并调整应用服务器(如Apache Tomcat)的相关参数,比如修改`server.xml`文件内的Connector节点属性`URIEncoding="UTF-8"`以确保URL路径也能正常识别特殊字符。 #### 客户端层面的预防措施 除了上述针对后台所做的优化外,前端开发人员也需要注意一些细节问题。例如,在发起Ajax请求前可以通过设置`$.ajaxSetup()`函数指定全局性的XHR选项;或者直接利用jQuery库提供的`.ajax()`方法里的`contentType`以及`dataType`字段来进行局部控制[^1]。 ```javascript // 使用 jQuery 发起 AJAX 请求的例子 $.ajax({ url: '/your-endpoint', type: 'GET', // 或者 POST 方法 contentType: "application/json; charset=utf-8", dataType: "json", // 声明预期接收的数据类型 success: function(data){ console.log(JSON.stringify(data)); } }); ``` 以上这些策略结合起来能够有效减少甚至消除由于跨平台通信而导致的文字显示错误。值得注意的是,实际环境中可能还会涉及到其他因素的影响,所以最好在整个项目的生命周期内保持一致性和良好的实践习惯。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿泽财商会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值