一、问题描述
idea中maven项目编译后,jar包里的中文乱码。如下图
二、问题发生原因
2.1、在idea控制台进行编译,使用 mvn clean package -Dmaven.test.skip=true
2.2、其实编译过程里已经有相关提示信息了,但是当时没注意到。
因为项目没有设置File encodeing,所以使用了maven的 platform encoding:GBK。(maven的默认编码方式可以用控制台输入mvn -v查看)
三、问题解决
3.1、在pom文件中配置属性
配置project.build.sourceEncoding属性值为:UTF-8,如下图
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
3.2、重新编译打包
重新编译打包之后的jar中文不再乱码,如下图
四、问题其他
4.1 修改maven的platform encoding
一开始我也参照其他博客,修改了maven的platform encoding,改为UTF-8。在系统环境变量中,添加变量(变量名:MAVEN_OPTS,变量值:-Dfile.encoding=UTF-8),如下图
但不知道是我的环境变量设置不对,还是没重启电脑(虽然我在控制台查看maven,maven的platform encoding已经是UFT-8了,如下图)
这样改完,编译打包的jar里的中文还是乱码
4.2 pom文件其它属性设置
参考其他人博客,除了project.build.sourceEncoding属性可以设置,还有project.reporting.outputEncoding 和 maven.compiler.encoding 。
不过我设置project.build.sourceEncoding就解决了问题,另外两个没有再去试,后续有时间了再设置它俩看看效果。
如果有知道这些属性作用的,也可以评论讲解一下,谢谢
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 编译时的编码 -->
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
参考了以下博客
https://blog.csdn.net/move_on_on/article/details/123373433
https://blog.csdn.net/xiao__jia__jia/article/details/104258557