文档章节

解决Spring MVC @ResponseBody返回中文字符串乱码问题

MiniBu
 MiniBu
发布于 2015/12/23 15:07
字数 187
阅读 93
收藏 7

引起乱码原因为spring mvc使用的默认处理字符串编码为ISO-8859-1。
具体参考org.springframework.http.converter.StringHttpMessageConverter类中public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");

解决方法:

第一种方法:

对于需要返回字符串的方法添加注解,如下:

@RequestMapping(value="/getUsers", produces = "application/json; charset=utf-8")
public String getAllUser() throws JsonGenerationException, JsonMappingException, IOException
{
List<User> users = userService.getAll();
ObjectMapper om = new ObjectMapper();
System.out.println(om.writeValueAsString(users));
DataGrid dg = new DataGrid();
dg.setData(users);
return om.writeValueAsString(dg);
}

此方法只针对单个调用方法起作用。

第二种方法:

在配置文件中加入

<mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
       <bean class="org.springframework.http.converter.StringHttpMessageConverter">
         <property name="supportedMediaTypes" value = "text/plain;charset=UTF-8" />
       </bean>
    </mvc:message-converters>
</mvc:annotation-driven>


参考:http://stackoverflow.com/questions/3616359/who-sets-response-content-type-in-spring-mvc-responsebody

 

© 著作权归作者所有

共有 人打赏支持
MiniBu
粉丝 46
博文 106
码字总数 30099
作品 0
上海
项目经理
私信 提问
加载中

评论(1)

hantsy
hantsy
真牛B,,,返回JSON 居然用 text/plain ,到底懂不懂 JSON, Jackson ? 为什么不用 application/json 呢?

暂无文章

isEmpty和null的区别

isEmpty和null的区别: 1.一个是对象为空(IsNull),一个是值为空(IsEmpty) 2.IsNull指任务类型变量是否为空包括对象类型的变量。 IsNull函数: 功能:返回Boolean的值,指明表达是否不包...

DemonsI
13分钟前
0
0
Centos7 安装mysql与php

https://blog.csdn.net/qq_36431213/article/details/79576025 官网下载安装mysql-server 依次使用下面三个命令安装 wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.r......

Yao--靠自己
23分钟前
0
0
详解如何实现一个简单的 vuex

首先我们需要知道为何要使用 vuex。父子组件通信用 prop 和自定义事件可以搞定,简单的非父子组件通信用 bus(一个空的 Vue 实例)。那么使用 vuex 就是为了解决复杂的非父子组件通信。 仅仅...

嫣然丫丫丫
28分钟前
1
0
算法——RangePartitioner实现之reservoirSample

简介 reservoir的作用是:**在不知道文件总行数的情况下,如何从文件中随机的抽取一行?**即是说如果最后发现文字档共有N行,则每一行被抽取的概率均为1/N? 我们可以:定义取出的行号为cho...

freeli
30分钟前
1
0
Python安装及netcdf数据读写

一、在CentOS7系统上安装Python3 在anaconda官网下载(http://https://www.anaconda.com/download/#linux)(Anaconda指的是一个开源的Python发行版本,是Python的包管理器和环境管理器) 下...

voole
34分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部