如何解決Spring MVC中響應(yīng)亂碼問題
Spring MVC最新響應(yīng)中亂碼解決方式
以前的解決辦法
<!--啟用包掃描--> <context:component-scan base-package="com.mufeng"/> <!--放行靜態(tài)文件--> <mvc:default-servlet-handler/> <!--開啟SpringMVC注解開發(fā)并解決亂碼問題--> <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <!--通過對(duì)StringHttpMessageConverter類的List做添加,修改響應(yīng)的編碼--> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
這是比較通用的一種方法
但是它有一種缺點(diǎn),就是你響應(yīng)一種數(shù)據(jù)添加一種,比較麻煩。而且在之前的版本中默認(rèn)的響應(yīng)類型為text/html;charset=ISO-8859-1
,且其被final關(guān)鍵字修飾,無法進(jìn)行修改。
但是在5.2.19.RELEASE之后的版本中,通過閱讀源碼可知:
StringHttpMessageConverter
的父類AbstractHttpMessageConverter<T>
中有了這樣一行代碼:
public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConverter<T> { ..... @Nullable private Charset defaultCharset; .....
雖然它默認(rèn)的編碼集還是ISO-8859-1
,但是它已不再被final修飾,這就意味著我們可以在Spring配置文件中直接對(duì)其進(jìn)行注入,修改Spring http響應(yīng)的默認(rèn)編碼集。
代碼如下:
<!--解決亂碼問題--> <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="defaultCharset"> <value>UTF-8</value> </property> </bean> </mvc:message-converters>
這種方法更簡(jiǎn)潔高效,而且通過此方法我們不需要在前端代碼中處理響應(yīng)時(shí)擔(dān)心后端穿過來的編碼集錯(cuò)誤。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot實(shí)現(xiàn)多模塊項(xiàng)目添加一新模塊
這篇文章主要介紹了springboot實(shí)現(xiàn)多模塊項(xiàng)目添加一新模塊,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02詳解基于MybatisPlus兩步實(shí)現(xiàn)多租戶方案
這篇文章主要介紹了詳解基于MybatisPlus兩步實(shí)現(xiàn)多租戶方案,本文分兩步,通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Spring Boot集成LangChain來實(shí)現(xiàn)Rag應(yīng)用的問題小結(jié)
檢索增強(qiáng)生成(RAG)是一種優(yōu)化大型語言模型(LLM)輸出的技術(shù),通過引用權(quán)威知識(shí)庫(kù)以增強(qiáng)模型的準(zhǔn)確性和相關(guān)性,RAG允許LLM在不重新訓(xùn)練的情況下訪問特定領(lǐng)域的知識(shí),提高了其在各種應(yīng)用中的實(shí)用性和信任度,感興趣的朋友跟隨小編一起看看吧2024-09-09Mybatis之映射實(shí)體類中不區(qū)分大小寫的解決
這篇文章主要介紹了Mybatis之映射實(shí)體類中不區(qū)分大小寫的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11詳細(xì)介紹idea如何設(shè)置類頭注釋和方法注釋(圖文)
本篇文章主要介紹了idea如何設(shè)置類頭注釋和方法注釋(圖文),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Spring注解驅(qū)動(dòng)之關(guān)于@Bean注解指定初始化和銷毀的方法
這篇文章主要介紹了Spring注解驅(qū)動(dòng)之關(guān)于@Bean注解指定初始化和銷毀的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09SpringBoot之groups應(yīng)對(duì)不同的Validation規(guī)則自定義方式
這篇文章主要介紹了SpringBoot之groups應(yīng)對(duì)不同的Validation規(guī)則自定義方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10