Spring下@ResponseBody响应中文内容乱码问题
来源:互联网 发布:mac美国官网砍单 编辑:程序博客网 时间:2024/05/21 06:33
引言: 在JQuery的Ajax请求中,收到的基于后台返回回来的结果出现乱码,在后台其内容正确,到了前台之后,确是乱码??????,该如何解决呢?
1. 问题的提出
前端基于JQuery的Ajax进行页面请求,但是收到的响应信息中的中文确是乱码;后台使用了基于Spring的@ResponseBody来对响应结果进行了封装。
2. 分析问题
2.1 JQuery前端排除
基于查看,JQuery的前端Ajax请求默认的都是基于UTF-8的请求,指定与否不影响结果信息。
如果坚持要加,在前端javaScript代码中加入:
contentType: "application/x-www-form-urlencoded; charset=utf-8",
2.2 后端Spring配置信息的分析
后端使用了如下配置来进行JacksonMapping信息的映射:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" > <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> </list> </property> </bean>经过网上的查找,发现可以使用org.springframework.http.converter.StringHttpMessageConverter来进行charset的强制转换。
3. 问题的解决
在RequestMappingHandlerAdapter中加入StringHttpMessageConverter来进行信息的编码转换:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" > <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean>经过分析,可以看到其实就是在其中加入了一个基于String信息的MessageConverter,将其转换为UTF-8.
4. 应用配置,问题解决
修改配置信息,重启系统,然后就可以在系统中看到正常的页面显示信息了。
总结分析:
spring从3.0开始提供一个HttpMessageConverter<T>接口,这个接口相当有用,spring可以针对Http报文头的ContentType来调用该类的默认实现类将请求和响应进行相应的转换。用户可以基于这个接口实现对Request和Response的精细化控制和管理。
- Spring下@ResponseBody响应中文内容乱码问题
- spring @ResponseBody中文乱码问题
- Spring MVC @ResponseBody 返回中文乱码问题
- spring mvc @ResponseBody返回中文乱码问题
- Spring MVC @ResponseBody 返回中文乱码问题
- Spring MVC @ResponseBody注解返回响应流时中文乱码问题的解决
- Spring MVC @ResponseBody注解返回响应流时中文乱码问题的解决
- Spring MVC @ResponseBody注解返回响应流时中文乱码问题的解决
- Spring MVC @ResponseBody注解返回响应流时中文乱码问题的解决
- @ResponseBody中文乱码问题
- Spring注解@ResponseBody中文乱码
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC3.2 @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- Spring MVC @ResponseBody返回中文字符串乱码问题
- strstr()函数的实现
- Menu Items are not showing on Action Bar
- Apple Swift编程语言入门教程
- socket 中的recv()函数
- 222
- Spring下@ResponseBody响应中文内容乱码问题
- Swift编程语言(中文版)(8.8 %)
- WeifenLuo.WinFormsUI.Docking.dll使用
- 关于读取style元素定义样式表的兼容问题
- 矩形类中运算符重载【C++】
- 批处理内置命令
- C++中的指针用法总结
- spring中注入属性时,属性名头两个字母必须小写
- 有个懂你的人,是温暖