ajax返回值 json 亂碼 解決方案

ajax的返回值一直亂碼,

試過各種ContentType設定utf-8的方法,就是搞不定,

而且明明返回值是json字符串,一直出現ajax取得返回值類型爲object。


最後查資料發現,

SpringMVC使用 @ResponseBody註解,返加字符串不做任何處理時,有可能會出現亂碼問題。

這是由於 StringHttpMessageConverter 類中,默認採用的字符集是 ISO-8859-1。

public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> {   

        public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");


解決辦法:


    那麼要解決亂碼問題,需要改變 StringHttpMessageConverter 中的默認字符集,本文中以UTF-8爲例。

   

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html;charset=UTF-8</value>
                            <value>text/plain;charset=UTF-8</value>
                            <value>application/json;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
            </list>
        </property>
    </bean>
    
    <!-- mvc:annotation-driven/-->
    <mvc:annotation-driven validator="validator"/>
注:配置必須在 <mvc:annotation-driven /> 之前,否則將不會啓效;<mvc:annotation-driven /> 會自動註冊DefaultAnnotationHandlerMapping 與AnnotationMethodHandlerAdapter。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章