zoukankan      html  css  js  c++  java
  • Spring MVC 返回类型为字符串时, 返回中文变成"?"处理

    Spring controller 如下

    @Controller
    public class SimpleController {
    
        @ResponseBody
        @RequestMapping(value = "/hotel")
        public String hotel() {
            return "{"status":0,"errmsg":null,"data":{"query":"酒店查询","num":65544,"url":"www.test.com"}}";
        }
    
    }

    这里使用ResponseBody, 返回值直接是一个字符串, 没有用到jackson, 如果是返回一个Object, 使用jackson转json, 是没有编码问题的

    这时酒店查询几个字全都变成了问号

    由于Spring处理返回值为String类型的结果时使用了StringHttpMessageConverter, 所以我们需要配置他的编码

        <bean id="utf8Charset" class="java.nio.charset.Charset"
              factory-method="forName">
            <constructor-arg value="UTF-8"/>
        </bean>
    
        <mvc:annotation-driven>
            <mvc:message-converters>
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <constructor-arg ref="utf8Charset"/>
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>

    问题解决

    参考自: http://blog.csdn.net/u010957324/article/details/9174001 

  • 相关阅读:
    qt install (1)
    learning rewind func
    learning strrchr func
    learning memchr func
    git lfs setpu(4)
    大端与小端
    git branch/meger step(3)
    git log/show/HEAD step(2)
    调用外部EXE文件
    获取计算机上的所有进程
  • 原文地址:https://www.cnblogs.com/zemliu/p/3497025.html
Copyright © 2011-2022 走看看