springboot全局字符編碼設(shè)置方式(解決亂碼問(wèn)題)
有時(shí)候我們會(huì)發(fā)現(xiàn)這種問(wèn)題,明明已經(jīng)設(shè)置了字符編碼過(guò)濾器但是還會(huì)有亂碼的情況出現(xiàn),這個(gè)問(wèn)題令我們很是頭疼,我之前也遇到過(guò)這種情況。
那怎么解決呢?
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)亂碼問(wèn)題,這種方式解決的可能性不大,但可以嘗試一下,希望還是要有的,萬(wàn)一解決了呢,因?yàn)椴榭丛创a發(fā)現(xiàn)springboot默認(rèn)的編碼格式就是UTF-8

2、自己手寫(xiě)編碼過(guò)濾器
//字符編碼過(guò)濾器
@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() {
}
}
如果這種方式也解決不了問(wèn)題的話,只能使用最后一種方式了。
3、使用java配置寫(xiě)一個(gè)字符編碼配置類
/**
* 中文亂碼解決
*/
@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的一個(gè)配置支配器類,我們可以實(shí)現(xiàn)我們感興趣的方法。

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

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

