zoukankan      html  css  js  c++  java
  • 【原创】@ResponseBody返回json数据时出现中文乱码

    ι 版权声明:本文为博主原创文章,未经博主允许不得转载。

    原因:

    Spring中解析字符串的转换器默认编码格式是ISO-8859-1

    public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> {
      public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");
      …

    2种解决方案:

    方案一:使用@RequestMapping注解的produces方法,设置produces = "application/json; charset=utf-8"

    示例代码:

    @RequestMapping(value="/weather",produces = "application/json;charset=utf-8")
    @ResponseBody
    public String weather() throws Exception{
      String url = "http://www.weather.com.cn/data/cityinfo/101271001.html";
      String weatherData = HttpClientHelper.sendGet(url, null, "utf-8");
      return weatherData;
    }

    方案二:在spring-servlet.xml中配置StringHttpMessageConverter的值

    <mvc:annotation-driven>
       <mvc:message-converters>  
        <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>  
                  <value>text/html;charset=UTF-8</value>  
              </list>  
           </property>  
        </bean>  
      </mvc:message-converters>  
    </mvc:annotation-driven>
  • 相关阅读:
    python基础-第十二篇-12.1jQuery基础与实例
    python基础-第十一篇-11.2DOM为文档操作
    [LC] 170. Two Sum III
    [Algo] 11. Rainbow Sort
    [LC] 31. Next Permutation
    [LC] 994. Rotting Oranges
    [LC] 863. All Nodes Distance K in Binary Tree
    [Algo] 132. Deep Copy Undirected Graph
    [LC] 138. Deep Copy Linked List With Random Pointer
    [Algo] 118. Array Deduplication IV
  • 原文地址:https://www.cnblogs.com/mengyi/p/8118826.html
Copyright © 2011-2022 走看看