溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ajax返回值 json 亂碼 解決方案

發(fā)布時(shí)間:2020-07-26 17:50:22 來源:網(wǎng)絡(luò) 閱讀:894 作者:精神自由 欄目:web開發(fā)

ajax的返回值一直亂碼,

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

而且明明返回值是json字符串,一直出現(xiàn)ajax取得返回值類型為object。


最后查資料發(fā)現(xiàn),

SpringMVC使用 @ResponseBody注解,返加字符串不做任何處理時(shí),有可能會出現(xiàn)亂碼問題。

這是由于 StringHttpMessageConverter 類中,默認(rèn)采用的字符集是 ISO-8859-1。

public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> {   

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


解決辦法:


    那么要解決亂碼問題,需要改變 StringHttpMessageConverter 中的默認(rèn)字符集,本文中以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。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI