springboot全局字符編碼設(shè)置方式(解決亂碼問題)
有時候我們會發(fā)現(xiàn)這種問題,明明已經(jīng)設(shè)置了字符編碼過濾器但是還會有亂碼的情況出現(xiàn),這個問題令我們很是頭疼,我之前也遇到過這種情況。
那怎么解決呢?
springboot編碼格式設(shè)置有三種方式,不管使用哪種方式,總有一款適合你。
1、在application.properties中設(shè)置
#編碼格式 spring.http.encoding.force=true spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true server.tomcat.uri-encoding=UTF-8
如果出現(xiàn)亂碼問題,這種方式解決的可能性不大,但可以嘗試一下,希望還是要有的,萬一解決了呢,因為查看源碼發(fā)現(xiàn)springboot默認(rèn)的編碼格式就是UTF-8

2、自己手寫編碼過濾器
//字符編碼過濾器
@WebFilter(urlPatterns = "/*",filterName = "CharacterEncodingFilter")
public class CharacterEncodingFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
filterChain.doFilter(request , response);
}
@Override
public void destroy() {
}
}
如果這種方式也解決不了問題的話,只能使用最后一種方式了。
3、使用java配置寫一個字符編碼配置類
/**
* 中文亂碼解決
*/
@Configuration
public class CharsetConfig extends WebMvcConfigurerAdapter {
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
StringHttpMessageConverter converter = new StringHttpMessageConverter(
Charset.forName("UTF-8"));
return converter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
converters.add(responseBodyConverter());
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}
}
WebMvcConfigurerAdapter 是springmvc的一個配置支配器類,我們可以實現(xiàn)我們感興趣的方法。

其實現(xiàn)的接口WebMvcConfigurer 定義了一些回調(diào)方法為springmvc提供一個通道通過java基本的配置。

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java日常練習(xí)題,每天進(jìn)步一點點(55)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-08-08
如何利用Spring的@Import擴(kuò)展點與spring進(jìn)行無縫整合
這篇文章主要介紹了如何利用Spring的@Import擴(kuò)展點與spring進(jìn)行無縫整合的實例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
解決SpringCloud下spring-boot-maven-plugin插件的打包問題
這篇文章主要介紹了SpringCloud下spring-boot-maven-plugin插件的打包問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
java實現(xiàn)excel導(dǎo)入數(shù)據(jù)的工具類
這篇文章主要介紹了java實現(xiàn)的excel導(dǎo)入數(shù)據(jù)的工具類,需要的朋友可以參考下2014-03-03
java中JsonObject與JsonArray轉(zhuǎn)換方法實例
在項目日常開發(fā)中常常會遇到JSONArray和JSONObject的轉(zhuǎn)換,很多公司剛?cè)肼毜男∶刃聲ㄔ谶@里,下面這篇文章主要給大家介紹了關(guān)于java中JsonObject與JsonArray轉(zhuǎn)換方法的相關(guān)資料,需要的朋友可以參考下2023-04-04
Java Long轉(zhuǎn)JSON出現(xiàn)精度丟失問題及解決
Java Long類型轉(zhuǎn)JSON時可能因JSON的通用數(shù)字類型不指定位數(shù)大小及JavaScript整數(shù)表達(dá)精度限制導(dǎo)致精度丟失,解決方法包括在Java對象中為Long類型字段添加@JsonFormat(shape=JsonFormat.Shape.STRING)注解,或在Spring框架中配置ObjectMapper以全局序列化行為2025-12-12

