springboot全局字符编码设置解决乱码问题

网友投稿 1068 2023-04-09

springboot全局字符编码设置解决乱码问题

springboot全局字符编码设置解决乱码问题

有时候我们会发现这种问题,明明已经设置了字符编码过滤器但是还会有乱码的情况出现,这个问题令我们很是头疼,我之前也遇到过这种情况。那怎么解决呢?

springboot编码格式设置有三种方式,不管使用哪种方式,总有一款适合你。

1、在application.properties中设置

#编码格式

spring.http.encoding.force=true

spring.http.encoding.charset=UTF-8

spring.http.encoding.enabled=true

server.tomcat.uri-encoding=UTF-8

如果出现乱码问题,这种方式解决的可能性不大,但可以尝试一下,希望还是要有的http://,万一解决了呢,因为查看源码发现springboot默认的编码格式就是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, ServletResponsehttp:// servletResponse, FilterChain filterChain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) servletRequest;

HttpServletResponse response = (HttpServletResponse) servletResponse;

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

filterDVcMABWIrChain.doFilter(request , response);

}

@Override

public void destroy() {

}

}

如果这种方式也解决不了问题的话,只能使用最后一种方式了。

3、使用java配置写一个字符编码配置类

/**

* 中文乱码解决

*/

@Configuration

public class CharsetConfig extends WebMvcConfigurerAdapter {

@BeDVcMABWIran

public HttpMessageConverter responseBodyConverter() {

StringHttpMessageConverter converter = new StringHttpMessageConverter(

Charset.forName("UTF-8"));

return converter;

}

@Override

public void configureMessageConverters(List> converters) {

super.configureMessageConverters(converters);

converters.add(responseBodyConverter());

}

@Override

public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {

configurer.favorPathExtension(false);

}

}

StringHttpMessageConverter是一个请求和响应信息的编码转换器,通过源码我们发现默认编码ISO-8859-1,不是UTF-8,所以我们只要通过上述配置将请求字符串转为UTF-8 即可

WebMvcConfigurerAdapter 是springmvc的一个配置支配器类,我们可以实现我们感兴趣的方法

其实现的接口WebMvcConfigurer 定义了一些回调方法为springmvc提供一个通道通过java基本的配置。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:电脑端微信如何打开小程序(电脑端微信打开小程序很慢)
下一篇:SparkSQL读取hive数据本地idea运行的方法详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~