Springboot 中文乱码问题

最近刚好项目上遇到了中文乱码问题,也刚好记录一下

检查编译环境的编码:

File --> Setttings --> Editor --> File Encodings,这下边设置三个地方的编码格式

配置JDK全局编码:

如图在系统环境变量中增加一个变量:JAVA_TOOL_OPTIONS 值为 -Dfile.encoding=UTF-8,如果是项目发布,就在启动的时候加入该JVM 参数

设置maven打包插件的编码


   
   org.springframework.boot
   spring-boot-maven-plugin
   
      -Dfile.encoding=UTF-8
   
   
      
         
            repackage
         
      
   

在application.properties文件中加入下面内容

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

但是貌似有时候不起作用,因为application.properties 在IDEA中好像有BUG,最好是转为yml文件来设置

如果连接有数据库,注意看数据库里面的编码集以及看看数据快照是否已经是乱码了,而不是应用导致的

以上就是正常来说基本就可以搞定了,如果还有乱码可以继续尝试下面的方式

修改controller的@RequestMapping

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

在配置类中增加如下代码:

@Configuration
public class CustomMVCConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    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);
    }
}

 

 

 

 

 

 

 

你可能感兴趣的:(java基础)