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

springboot全局字符编码设置(解决乱码问题)有时候我们会发现这种问题,明明已经设置了字符编码过滤器但是还会有乱码的情况出现,这个问题令我们很是头疼,我之前也遇到过这种情况。那怎么解决呢?springboot编码格式设置有三种方式,不管使用哪种方式,总有一款适合你。1、在application.properties中设置#编码格式spring.http.encoding.force=truespring.http.encod…

大家好,又见面了,我是你们的朋友全栈君。

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

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

如果出现乱码问题,这种方式解决的可能性不大,但可以尝试一下,希望还是要有的,万一解决了呢,因为查看源码发现springboot默认的编码格式就是UTF-8

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

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

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

WebMvcConfigurerAdapter 是springmvc的一个配置支配器类,我们可以实现我们感兴趣的方法。springboot全局字符编码设置(解决乱码问题)

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

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

能力一般,水平有限,如有错误,请多指出。
如果对你有用点个关注给个赞呗,
如果对你有用,可以关注一下我的微信公众号suncodernote

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130114.html原文链接:https://javaforall.net

赞 (2)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 下载安装包并安装使用_openiv安装教程

    下载安装包并安装使用_openiv安装教程VS2022版来了,VisualStudio2022最新版安装教程(数千字图文详解),一步步教会你如何安装并运行VS2022,以及背景图设置。

    2022年10月12日
  • windows版本tcping参数详解

    windows版本tcping参数详解描述在本地主机和远程主机之间,tcping可以测试出执行TCP三次握手所需的时间(SYN,SYN/ACK,ACK)。最终ACK传送时间不包括在内,只有最少的时间才能将其丢弃在近端的电线。概要#tcping[-tdsvf46][-iinterval][-ntimes][-winterval][-bn][-rtimes][-jdepth][–teef…

    2022年6月23日
  • 爬虫课第一次报错总结

    爬虫课第一次报错总结1importurllib.requesturl=’https://www.baidu.com/s?wd=海贼王’res=urllib.request.urlopen(url)UnicodeEncodeError:‘ascii’codeccan’tencodecharactersinposition10-12:ordinalnotinrange(128)原因:url包含不是ascii的字符处理:把“海贼王”改为%+十六进制(法1:百度,法2urllib.par

    2022年7月11日
  • 快速搭建一个自己的服务器详解(java环境)「建议收藏」

    快速搭建一个自己的服务器详解(java环境)「建议收藏」一.服务器的购买1.我选择的是阿里云的服务器,学生价9.5元一个月,百度直接搜索阿里云,然后点击右上角登录,推荐大家用支付宝扫码登录,方便快捷。阿里云官网的东西比较多,登录后我找了很久也没有找到学生服务器在哪里卖,最后在咨询里找到了这个网址,https://promotion.aliyun.com/ntms/campus2017.html,购买的时候需要进行学生认证,按照他的要求一步步…

    2022年6月11日
  • 怎样用matlab插值得到函数表达式

    怎样用matlab插值得到函数表达式
    x=[1:1:10];
    y=[2:2:20];
    pp=interp1(x,y,’spline’,’pp’)
    breaks=pp.breaks
    coefs=pp.coefs

    说明:
    interp1得到的函数其实是分段函数。
    函数的全部信息全部都在pp里
    让我们看一下其breaks分量和coefs分量,他们蕴含着函数表达式,具体涵义如下:
    假设co

    2022年5月23日
  • IntelliJ IDEA 配置Tomcat运行web项目[通俗易懂]

    IntelliJ IDEA 配置Tomcat运行web项目[通俗易懂]1.IDEA Run/EditConfigurations中点击“+”号没有tomcat server…解决办法:File—&gt;Setting—&gt;Build,Execution,Deployment—-&gt;Application Servers—&gt;"+"这里添加了之后Edit Configuration里面就可以看到Tomcat Server了 (全部按…

    2022年8月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号