zoukankan      html  css  js  c++  java
  • Spring Boot 中文乱码解决

    第一步,约定传参编码格式

    不管是使用httpclient,还是okhttp,都要设置传参的编码,为了统一,这里全部设置为utf-8

    第二步,修改application.properties文件

    增加如下配置:

    spring.http.encoding.force=true
    spring.http.encoding.charset=UTF-8
    spring.http.encoding.enabled=true
    server.tomcat.uri-encoding=UTF-8

    此时拦截器中返回的中文已经不乱码了,但是controller中返回的数据依旧乱码。

    第三步,修改controller的@RequestMapping

    修改如下:

    produces="text/plain;charset=UTF-8"

    这种方法的弊端是限定了数据类型,继续查找资料,在stackoverflow上发现解决办法,是在配置类中增加如下代码:

    @Configuration
    public class CustomMVCConfiguration 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);
        }
    }

    便可以解决SpringBoot的中文乱码问题了。 

    
    
    
  • 相关阅读:
    NGINX -- 详解Nginx几种常见实现301重定向方法上的区别
    数据库外键的使用以及优缺点
    phpok -- 域名问题
    Sql Server系列:多表连接查询
    Go -- cron定时任务的用法
    JavaScript -- 清除缓存
    sql CAST用法
    Mock -- 数据模拟
    EsLint入门
    citus real-time 分析demo( 来自官方文档)
  • 原文地址:https://www.cnblogs.com/heyy520/p/7223944.html
Copyright © 2011-2022 走看看