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>
  • 相关阅读:
    最小的K个数
    CentOS 7 连接不到网络解决方法
    数组中超过一半的数字
    字符串的排列
    二叉搜索树与双向链表
    复杂链表的复制
    二叉树中和为某一数值的路径
    二叉搜索树的后序遍历序列
    从上到下打印二叉树
    java的图形文档
  • 原文地址:https://www.cnblogs.com/mengyi/p/8118826.html
Copyright © 2011-2022 走看看