SpringMVC中@ResponseBody中文乱码

     经常json以@ResponseBody注解String类型返回,因为 StringHttpMessageConverter里面默认设置了字符集是ISO-8859-1,所以这儿传回去的字符串中的中文经常是乱码,多个?号表示的样子,解决的方法是将StringHttpMessageConverte r默认值改成UTF-8才行。java

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

    <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包:
json

<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>
相关文章
相关标签/搜索