如何解決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關鍵字修飾,無法進行修改。
但是在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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Mybatis-Plus自動生成的數(shù)據(jù)庫id過長的解決
這篇文章主要介紹了Mybatis-Plus自動生成的數(shù)據(jù)庫id過長的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
springboot?filter配置多個時,執(zhí)行順序問題
這篇文章主要介紹了springboot?filter配置多個時,執(zhí)行順序問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
SpringBoot使用MyBatis的XML文件進行SQL語句編寫
在現(xiàn)代 Java Web 開發(fā)中,Spring Boot 和 MyBatis 是兩個非常流行的技術框架,本文將詳細介紹如何在 Spring Boot 項目中使用 MyBatis 的 XML 文件來編寫 SQL 語句,感興趣的可以了解下2025-07-07
Spring Boot使用過濾器和攔截器分別實現(xiàn)REST接口簡易安全認證示例代碼詳解
這篇文章主要介紹了Spring Boot使用過濾器和攔截器分別實現(xiàn)REST接口簡易安全認證示例代碼,通過開發(fā)實踐,理解過濾器和攔截器的工作原理,需要的朋友可以參考下2018-06-06
Java業(yè)務中臺確保數(shù)據(jù)一致性的解決方案
數(shù)據(jù)一致性通常指關聯(lián)數(shù)據(jù)之間的邏輯關系是否正確和完整。而數(shù)據(jù)存儲的一致性模型則可以認為是存儲系統(tǒng)和數(shù)據(jù)使用者之間的一種約定。如果使用者遵循這種約定,則可以得到系統(tǒng)所承諾的訪問結(jié)果2021-10-10
java?使用BeanFactory實現(xiàn)service與dao層解耦合詳解
這篇文章主要介紹了java?使用BeanFactory實現(xiàn)service與dao層解耦合詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
java實現(xiàn)Object轉(zhuǎn)String的4種方法小結(jié)
這篇文章主要介紹了java實現(xiàn)Object轉(zhuǎn)String的4種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09

