最近发现服务日志有中文乱码问题
第一时间想到的是服务器编码问题,登录服务器执行一下locale看一下
咦,全都是指定中文编码,那我们继续看一下服务日志
这日志里部分中文是乱码,部分中文是正常的,然后再仔细看了一下,这些中文的乱码全都是代码里写的中文,而从接口来的数据都没有问题,这就说明,我们服务器的编码是没有问题的,代码里本身就是乱码。
然后我们看一下本地的代码,发现本地不是乱码,那就只有一个环节出错了,那就是打包过程中,代码源文件编码不对,我们去查看一下打包日志(我用的jenkins)
发现一堆警告信息,大概意思是用ascll编码不能映射字符,那大概就是这个问题了,我们改一下pom文件,加一下源代码的编码
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
重新打包,发现问题已解决!