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

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>

时间: 2024-10-05 03:38:55

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

spring mvc 避免IE执行AJAX时,返回JSON出现下载文件

controller @RequestMapping(value = "/com/testjson", produces = { "text/plain;charset=UTF-8" }) public @ResponseBody String testjson(HttpServletRequest request){     Map<String,Object> m = new HashMap<String,Object>();     .

Spring MVC学习之三:处理方法返回值的可选类型

转自:http://www.cnblogs.com/cuizhf/p/3810652.html ———————————————————————————————————————————————————————————— spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明: ModelAndView @RequestMapping("/show1") publ

使用 springmvc请求 返回 字符串时 ,中文出现乱码

@RequestMapping(value="/askQuestion" ,method = RequestMethod.GET , produces = {"application/json,charset=UTF-8"}) @ResponseBody public String askQuestion(@RequestParam(value="content",required=true)String content, 返回 string .

Spring MVC Controller中解析GET方式的中文参数会乱码的问题

Spring MVC Controller中解析GET方式的中文参数会乱码的问题 问题描述 在工作上使用Spring老是碰到一个问题,使用Controller处理GET方式的请求参数时,服务端得到的结果会碰到乱码,之前翻阅了很多与Java EE相关的很多乱码处理资料,不管是加过滤器还是统一文件编码,都没能正确解决,后来设计接口时,一直采用先Base64,然后再作为参数传过来的方式解决的.最近找到了根本的解决方案,顺手记下来. 为何会乱码 Spring MVC 是基于Servlet,在Http请求

Spring MVC Controller中解析GET方式的中文参数会乱码的问题(tomcat如何解码)

Spring MVC Controller中解析GET方式的中文参数会乱码的问题 问题描述 在工作上使用突然出现从get获取中文参数乱码(新装机器,tomcat重新下载和配置),查了半天终于找到解决办法. 为何会乱码 Spring MVC 是基于Servlet,在Http请求到达Servlet解析之前,GET过来的URL已经被Tomcat先做了一次URLDecode.Tomcat对GET方式默认的URL解码结果是iso-8859-1而不是我认为的UTF-8. 解决方案 解决方案也很简单,除了平常

jQuery $.post()返回类型为json时不进入回调函数的原因及解决方法

这真是个让人特别抓心找挠肝的问题,真的差点被这个问题逼的放弃去使用json作为返回类型,而是去用html,但是有的时候就是要较汁一下.(即便现在问题解决了,我还是想说句"妈蛋",来发泄一下) 其实主要还是自己对json的不够了解,但是很纳闷,网上对路的解决方法几乎没有.所以虽然问题很小,但是还是想要分享出来,希望能帮到需要的人. 首先$.post()格式如下: $.post(url,data,success(data, textStatus, jqXHR),dataType) 参数描述

【Spring MVC】spring mvc中相同的url请求返回不同的结果

在项目中凡是使用Spring MVC这种控制器的,大多都是返回JSON数据对象,或者JSP页面. 但是相同的URL请求如何让他自动的选择放回的是什么? 在这里有由于鄙人没有亲自测试过,就不敢乱贴代码,只把别人写的引用一下,以防未来某天需要而忘却. 引用地址:http://my.oschina.net/wzlee/blog/262205

Spring MVC 3.x 版本使用 @ResponseBody 返回乱码

由于万恶的Spring MVC 默认返回编码 是 ISO-8859-1, 使用如下配置, 可以将编码专为UTF-8, <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <bean class="o

【转】iOS Objective-C中的instancetype和id关键字-关联返回类型和非关联返回类型

Objective-C中的instancetype和id关键字 分类: Objective-C2013-11-28 19:48 5421人阅读 评论(1) 收藏 举报 clangobjective-c编译器cocoainstancetype 目录(?)[+] Objective-C中的instancetype和id关键字 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/16994913 转载请注明出处 如果觉得文章对你