spring boot maven项目返回值乱码的解决方法

spring boot maven项目返回值乱码的解决方法

1、先看乱码效果:

spring boot maven项目,返回值乱码,如下图:

spring boot maven项目返回值乱码的解决方法_第1张图片

控制台打印log乱码,如下图:

在这里插入图片描述

有swagger的话,swagger文档乱码,如下图:

spring boot maven项目返回值乱码的解决方法_第2张图片

2、分析解决

以上种种,都是maven在打包的时候,没有用UTF-8编码导致的,如下图,是maven打包时的log:
spring boot maven项目返回值乱码的解决方法_第3张图片

方法一:maven 打包时,会先找对应pom文件中有没有编码配置
<project>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
    ...
    </dependencies>
</project>

如果有,就按照pom文件中的配置编码格式打包。所以这个是最优的解决方案

方法二:如果打包找不到上面的配置,那就会用项目配置

spring boot maven项目返回值乱码的解决方法_第4张图片
所以,这里配置项目编码,也能解决乱码问题
但这种方式,仅仅限于在idea中执行打包命令,才能有效,如果你是自己单独用命令在cmd窗口执行打包,还是还会乱码。

方法三:更改maven的平台编码格式

本地执行mvn -v(前台是配置了maven_home的环境变量,没有配置的话可以直接去对应安装文件下去执行命令)
spring boot maven项目返回值乱码的解决方法_第5张图片
发现maven默认的平台编码是GBK的,所以我们需要把这个改一下。
新增环境变量:
MAVEN_OPTS
-Dfile.encoding=UTF-8
spring boot maven项目返回值乱码的解决方法_第6张图片

重新打开一个控制台(不用重启电脑),再次查看mvn -v
spring boot maven项目返回值乱码的解决方法_第7张图片
发现maven的平台编码,变成了UTF-8,生效了
这种很明显,不是项目级别,而且只要用本地这个maven打包,都会用UTF-8编码格式

3、总结

上面三种方法,都可以解决乱码,但 强烈建议 用第一种,直接在pom文件中指定。
用第一种,上线的时候,就不用配置线上maven的编码格式了。
而且也只有第一种,maven打包的时候不是warning警告的:
spring boot maven项目返回值乱码的解决方法_第8张图片
除了这个,其他方法都是warning警告的,如下图:
在这里插入图片描述
也同样说明,maven打包,是希望用户在pom文件中配置的,其他的只是娄底方案而已。

你可能感兴趣的:(maven,maven,java,乱码)