SSM框架:解決後臺傳數據到前臺中文亂碼問題,使用@ResponseBody返回json 中文亂碼

場景:html

 在實際運用場景中,當前臺發起請求後,咱們須要從後臺返回數據給前臺,這時,若是返回的數據中包含中文,則常常會出如今後臺查詢出來都是好好,可是傳輸回去就莫名的亂碼了,並且,咱們明明已經在 web.xml 中進行編碼過濾了,但仍是亂碼,讓人很頭疼。web

解決辦法:spring

 第一種:這種方法,估計不少人都知道,那就在 controller 中的每一個方法的  @RequestMappering 註解中進行編碼設置,以下所示:json

@RequestMapping(value = "/queryUserById",produces = "text/plain;charset=utf-8")

   這種方法能夠解決返回亂碼問題,可是存在一個問題就是:須要在每個的方法中都要寫上 produces = "text/plain;charset=utf-8"spring-mvc

這句設置,這樣無形中,讓咱們的代碼看起來,有那麼一些不美觀,做爲一個慵懶的程序猿,也不會容許咱們一直在重複作寫這代碼,mvc

因此有了第二種方法。app

第二種:與第一種方法相比,這種方法只須要在 spring-mvc.xml 配置文件中配置一次就好編碼

<!--自定義消息轉換器的編碼,解決後臺傳輸json回前臺時,中文亂碼問題-->
    <mvc:annotation-driven >
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter" >
                <property name = "supportedMediaTypes">
                    <list>
                        <value>application/json;charset=utf-8</value>
                        <value>text/html;charset=utf-8</value>
                        <!-- application 能夠在任意 form 表單裏面 enctype 屬性默認找到 -->
                        <value>application/x-www-form-urlencoded</value>
                    </list>
                </property>
            </bean>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" ></bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
相關文章
相關標籤/搜索