您的位置:首页 > 编程语言 > Java开发

SpringMVC中@ResponseBody中文乱码

2015-11-14 15:42 363 查看
常常json以@ResponseBody注解String类型返回,由于 StringHttpMessageConverter里面默认设置了字符集是ISO-8859-1,因此这儿传回去的字符串中的中文常常是乱码,多个?号表示的样子,解决的方法是将StringHttpMessageConverte r默认值改为UTF-8才行。

spring配置文件中添加这两个bean,代码如下:

<bean name="utf8Charset" class="java.nio.charset.Charset" factory-method="forName" >
<constructor-arg value="UTF-8" ></constructor-arg>
</bean>
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg ref="utf8Charset">
</constructor-arg>
<property name="supportedMediaTypes">
<list>
<bean class="org.springframework.http.MediaType">
<constructor-arg value="text" />
<constructor-arg value="plain" />
<constructor-arg value="UTF-8" />
</bean>
<bean class="org.springframework.http.MediaType">
<constructor-arg value="application" />
<constructor-arg value="json" />
<constructor-arg value="UTF-8" />
</bean>
</list>
</property>
</bean>


还需要添加如下几个jar包:

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: