免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2866 | 回复: 1

SpringMVC JQuery Ajax Get Post请求在Tomcat中乱码解决方案 [复制链接]

论坛徽章:
43
15-16赛季CBA联赛之上海
日期:2020-11-04 09:36:5515-16赛季CBA联赛之北控
日期:2018-10-29 18:20:3415-16赛季CBA联赛之北京
日期:2018-10-06 21:39:5715-16赛季CBA联赛之天津
日期:2018-08-09 10:30:41ChinaUnix元老
日期:2018-08-03 17:26:00黑曼巴
日期:2018-07-13 09:53:5415-16赛季CBA联赛之吉林
日期:2018-03-30 12:58:4315-16赛季CBA联赛之佛山
日期:2017-12-01 10:26:3815-16赛季CBA联赛之上海
日期:2017-11-14 09:20:5015-16赛季CBA联赛之江苏
日期:2019-02-20 09:53:3319周年集字徽章-庆
日期:2019-08-27 13:23:2515-16赛季CBA联赛之广夏
日期:2019-09-03 18:29:06
发表于 2016-08-03 19:41 |显示全部楼层
SpringMVC JQuery Ajax Get Post请求在Tomcat中乱码解决方案

SpringMVC  3.12
JQuery 1.8.2
Tomcat 6.0.35


1、乱码很烦人,Spring mvc的@Responsebody返回数据如果不经过特殊处理,总会发生乱码,针对目前的3.1.2版本。

这个解决方式可以通过配置内部编码机制来解决

        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
                <property name="messageConverters">
                        <list>
                                <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
                                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                                        <property name="supportedMediaTypes">
                                                <list>
                                                        <value>text/html; charset=utf-8</value>
                                                </list>
                                        </property>
                                </bean>
                                <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"/>
                                <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
                                <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"/>
                                <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/>
                        </list>
                </property>
        </bean>

注意:Spring mvc内部,默认的编码只有 UTF-8、iso-8859-1

我喜欢用UTF-8,因为JQuery等发送数据也是UTF-8模式,很多开源组件都这样,这里就统一成UTF-8了。

经过上面的配置后,从后台返回给页面的数据就不是乱码。

2、 在JQuery ajax的get方式请求时候,发送给后台的中文会是乱码。这个乱码的原因和Tomcat有关系,需要指定tomcat发送数据编码格式为UTF-8,默 认的是iso-8859-1。指定方式是,在Connector上加上一个配置属性:URIEncoding="UTF-8"

加上后,整个接点默认的配置为:

        <Connector port="8080" protocol="HTTP/1.1"   
                             connectionTimeout="20000"   
                             redirectPort="8443" URIEncoding="UTF-8"/>

3、如果你喜欢GBK,那么解决以上编码问题,对你来说是一场噩梦,你需要通过复杂的过滤器处理Tomcat以及修改Spring的一些编码方式,甚至一些依赖的库也会导致乱码(如dom4j)。这时候,问题往往变得很棘手,但并非不能解决----很费劲。

因此建议包括数据库,都用utf-8编码,简单省劲儿。

4、其实编码就是数据传输的格式,真无所谓的事情,你要是喜欢,你还可以用MP3、MP4格式进行编码,只要正确解码就行了,实在没啥意义。


jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8

论坛徽章:
0
发表于 2016-11-23 18:04 |显示全部楼层
实在解决不了 我都加密一下 ,接收到再解密一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP