zoukankan      html  css  js  c++  java
  • Spring @ResponseBody 返回中文乱码问题

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt102

    今天在使用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>  

  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/grefr/p/6095083.html
Copyright © 2011-2022 走看看