美文网首页Java架构师
解决Spring MVC ResponseBody返回中文字符串

解决Spring MVC ResponseBody返回中文字符串

作者: Java耕耘者 | 来源:发表于2018-10-30 19:40 被阅读1次

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

引起乱码原因为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>

 在此我向大家推荐一个架构学习交流群。交流学习群号:938837867 里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

相关文章

网友评论

    本文标题:解决Spring MVC ResponseBody返回中文字符串

    本文链接:https://www.haomeiwen.com/subject/lelntqtx.html