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>
相關文章
相關標籤/搜索