如何解決Spring MVC中響應亂碼問題
Spring MVC最新響應中亂碼解決方式
以前的解決辦法
<!--啟用包掃描-->
<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>
<!--通過對StringHttpMessageConverter類的List做添加,修改響應的編碼-->
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>這是比較通用的一種方法
但是它有一種缺點,就是你響應一種數(shù)據(jù)添加一種,比較麻煩。而且在之前的版本中默認的響應類型為text/html;charset=ISO-8859-1,且其被final關(guān)鍵字修飾,無法進行修改。
但是在5.2.19.RELEASE之后的版本中,通過閱讀源碼可知:
StringHttpMessageConverter的父類AbstractHttpMessageConverter<T>中有了這樣一行代碼:
public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConverter<T> {
.....
@Nullable
private Charset defaultCharset;
.....雖然它默認的編碼集還是ISO-8859-1,但是它已不再被final修飾,這就意味著我們可以在Spring配置文件中直接對其進行注入,修改Spring http響應的默認編碼集。
代碼如下:
<!--解決亂碼問題-->
<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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解基于MybatisPlus兩步實現(xiàn)多租戶方案
這篇文章主要介紹了詳解基于MybatisPlus兩步實現(xiàn)多租戶方案,本文分兩步,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
Spring Boot集成LangChain來實現(xiàn)Rag應用的問題小結(jié)
檢索增強生成(RAG)是一種優(yōu)化大型語言模型(LLM)輸出的技術(shù),通過引用權(quán)威知識庫以增強模型的準確性和相關(guān)性,RAG允許LLM在不重新訓練的情況下訪問特定領(lǐng)域的知識,提高了其在各種應用中的實用性和信任度,感興趣的朋友跟隨小編一起看看吧2024-09-09
Spring注解驅(qū)動之關(guān)于@Bean注解指定初始化和銷毀的方法
這篇文章主要介紹了Spring注解驅(qū)動之關(guān)于@Bean注解指定初始化和銷毀的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
SpringBoot之groups應對不同的Validation規(guī)則自定義方式
這篇文章主要介紹了SpringBoot之groups應對不同的Validation規(guī)則自定義方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10

