Spring @ResponseBody 返回中文乱码问题

简介:

今天在使用spring 的时候,发现中文返回的是乱码。

经过研究发现,主要是@ResponseBody 引起的。主要是由于 @ResponseBody 返回字符串结果的时候,使用了org.springframework.http.converter.StringHttpMessageConverter 中默认的编码。

请看 org.springframework.http.converter.StringHttpMessageConverter :


  1. public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> {  

  2.   

  3.     public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");  

  4.   

  5.     private final List<Charset> availableCharsets;  

  6.   

  7.     private boolean writeAcceptCharset = true;  

  8.   

  9.     public StringHttpMessageConverter() {  

  10.         super(new MediaType("text""plain", DEFAULT_CHARSET), MediaType.ALL);  

  11.         this.availableCharsets = new ArrayList<Charset>(Charset.availableCharsets().values());  

  12.     }  

 

默认情况下,是ISO-8859-1编码,我们要将ISO-8859-1编码改成utf-8编码。

 

[java] view plaincopyprint?

 

  1. public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");    


我们的解决方法是,在spring-servlet.xml中,加入一个bean

 

  1. <bean  

  2.     class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  

  3.     <property name="messageConverters">  

  4.         <list>  

  5.             <bean  

  6.                 class="org.springframework.http.converter.StringHttpMessageConverter">  

  7.                 <property name="supportedMediaTypes">  

  8.                     <list>  

  9.                         <bean class="org.springframework.http.MediaType">  

  10.                             <constructor-arg index="0" value="text" />  

  11.                             <constructor-arg index="1" value="plain" />  

  12.                             <constructor-arg index="2" value="UTF-8" />  

  13.                         </bean>  

  14.                     </list>  

  15.                 </property>  

  16.             </bean>  

  17.         </list>  

  18.     </property>  

  19. </bean>  

特别说明:尊重作者的劳动成果,转载请注明出处哦~~~http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt102
相关文章
|
XML JSON Java
Spring Boot 返回 XML 数据,一分钟搞定!
Spring核心技术 67 篇文章13 订阅 订阅专栏 Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击查看之前分享的 Spring Boot 返回 JSON 数据,一分钟搞定!。
Spring Boot 返回 XML 数据,一分钟搞定!
|
JSON 前端开发 Java
彻底搞定 Spring 中的 @PathVariable 和 @ResponseBody
本文深入解析了Spring MVC中`@PathVariable`和`@ResponseBody`的使用方法及适用场景。`@PathVariable`用于从URL路径提取变量,增强REST风格接口的语义性;`@ResponseBody`则将方法返回值直接写入HTTP响应体,适合返回JSON或XML数据。通过多个实际案例,展示了两者在不同场景下的应用,如删除商品、获取商品详情等。文章还总结了最佳实践,帮助开发者更好地理解与运用这两个注解,提升接口设计的清晰度与可维护性。
470 0
|
Java Spring
springmvc中spring提供的中文乱码解决问题
可以解决浏览器的乱码问题
294 0
|
Java Windows Spring
Spring Boot CMD 运行日志输出中文乱码
Spring Boot CMD 运行日志输出中文乱码
955 0
|
JSON 前端开发 Java
Spring MVC解决中文乱码问题
简介: 你好看官,里面请!今天笔者讲的是 Spring MVC解决中文乱码问题 .不懂可以在评论区留言,我看到会及时回复。 注意:本文仅用与学习参考,不可用于商业用途。
739 4
Spring MVC解决中文乱码问题
|
JSON 前端开发 Java
如何解决Spring Boot中的中文乱码问题?
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot 被认为是 Spring MVC 的“接班人”,它可以帮我们自动配置,如果默认配置不能满足需求,我们还可以替换掉自动配置类,使用自己的配置。
3101 0
|
JSON 前端开发 Java
Spring MVC【返回数据与请求转发和重定向】
Spring MVC【返回数据与请求转发和重定向】
Spring MVC【返回数据与请求转发和重定向】
|
XML JSON 前端开发
Spring MVC @RequestBody @ResponseBody 序列化反序列化实现
前言 Spring MVC 中,标注了 @RequestBody 注解的 Controller 方法参数可以用来接收请求体,标注了 @ResponseBody 注解的 Controller 方法则会将返回值作为响应体。
1169 0
Spring MVC @RequestBody @ResponseBody 序列化反序列化实现
|
存储 JSON 前端开发
Spring MVC【参数的获取与数据返回】
Spring MVC【参数的获取与数据返回】
Spring MVC【参数的获取与数据返回】
|
JSON 前端开发 Java
使用Spring Boot开发一个属于自己的web Api接口返回JSON数据
使用Spring Boot开发一个属于自己的web Api接口返回JSON数据
566 0
使用Spring Boot开发一个属于自己的web Api接口返回JSON数据