码迷,mamicode.com
首页 > 编程语言 > 详细

Spring MVC 返回类型为字符串时, 返回中文变成"?"处理

时间:2016-08-20 16:23:55      阅读:512      评论:0      收藏:0      [点我收藏+]

标签:

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>
技术分享

Spring MVC 返回类型为字符串时, 返回中文变成"?"处理

标签:

原文地址:http://www.cnblogs.com/zhaoxinshanwei/p/5790484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!