zoukankan      html  css  js  c++  java
  • spring boot--解决中文乱码问题

    前言

      在spring boot请求返回中文的时候,有时会出现中文字符为乱码或者是????的情况,这是因为spring boot 默认的StringHttpMessageConverter值为:ISO_8859_1,我们只需要将其改为:utf-8即可

    代码

    @Configuration
    public class CustomMVCConf extends WebMvcConfigurationSupport { 
       //覆写extendMessageConverters方法即可 @Override protected
    void extendMessageConverters(List<HttpMessageConverter<?>> converters) { for (HttpMessageConverter<?> converter :converters){ if(converter instanceof StringHttpMessageConverter){ ((StringHttpMessageConverter)converter).setDefaultCharset(StandardCharsets.UTF_8); //将StringHttpMessageConverter改为utf-8 } } super.extendMessageConverters(converters); } }

    需要注意的是

      不要使用多个class继承WebMvcConfigurationSupport类进行覆写配置,因为只有一个class会生效,原因可以参考这篇文章

    @Configuration
    public class CustomMVCConf extends WebMvcConfigurationSupport {
        //复写addCorsMappings 方法,实现cors
        @Override
        protected void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedMethods("*")
                    .allowedOrigins("*")
                    .allowedHeaders("*");
            super.addCorsMappings(registry);
        }
        //复写extendMessageConverters 方法,解决中文乱码或????号问题
        @Override
        protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
            for (HttpMessageConverter<?> converter :converters){
                if(converter instanceof StringHttpMessageConverter){
                    ((StringHttpMessageConverter)converter).setDefaultCharset(StandardCharsets.UTF_8);
                }
            }
            super.extendMessageConverters(converters);
        }
    }

     

    多个class配置WebMvcConfig

      如果你觉得所有的配置都写在一个class类,太过于臃肿,那么可以使用implements实现接口的方式,使用多个了配置

      config1 class

    @Configuration
    public class CustomMVCConf implements WebMvcConfigurer {
        //复写addCorsMappings 方法,实现cors
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedMethods("*")
                    .allowedOrigins("*")
                    .allowedHeaders("*");
            WebMvcConfigurer.super.addCorsMappings(registry);
        }
    }

      config2 class

    @Configuration
    public class CustomMVCConf2 implements WebMvcConfigurer {
        @Override
        public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
            for (HttpMessageConverter<?> converter : converters) {
                if (converter instanceof StringHttpMessageConverter) {
                    ((StringHttpMessageConverter) converter).setDefaultCharset(StandardCharsets.UTF_8);
                }
            }
            WebMvcConfigurer.super.extendMessageConverters(converters);
        }
    }
  • 相关阅读:
    再叙存储设备
    分布式文件系统---测试
    分布式文件系统
    Solr 分布式(复制)配置--成功验证
    搜索服务之离线处理思路
    我为公司做的总体架构,欢迎提建议
    python的面向对象
    python异常处理
    迭代器和生成器
    python函数
  • 原文地址:https://www.cnblogs.com/wrhbk/p/15160552.html
Copyright © 2011-2022 走看看