1.问题
我们在使用JenKins编译Android项目时,特别是进入到Gradle脚本执行的时候。出现错误后,很容易出现中文乱码情况。
相较于以前的版本,现在JenKins的乱码情况已经有比较大的改进了。
但是第三方编译插件还是很容易出现乱码,主要原因在于GBK格式和UTF-8格式的问题。
(PS:还有一种情况,我们在选择控制台输出下面的 文本方式查看
时,出现的乱码问题。都是一种解决方法)
2.分析
相同的配置,如果是在Linux系统之中,就不会出现这个情况。主要就是在Windows中。Windows中文操作系统,默认的字符输出编码格式是GBK。而我们在使用各种第三方插件的时候,那些第三方插件jar的输出日志很多是utf-8的。
然后在JenKins的控制台输出上就出现了乱码情况。
例如:绯荤粺鎵句笉鍒版寚瀹氱殑鏂囦欢銆?
这个就是一个比较典型的中文字符乱码。
3.解决方案
既然如此,那么我们就将JenKins的输出数据格式改为utf-8那么不就能解决了么。 utf-8也是支持中文字符的。
GBK每个汉字两个字节,UTF-8每个汉字三个字节。所以编码就会错误了。英文字母由于字节都是一样,所以不会出现不同编码造成的乱码情况。
1.在Menage Jenkins 的Configure System 之中添加全局属性:
添加:
键: LANG
值:zh.CH.UTF-8
2.在你的JenKins安装目录下的jenkins.xml 文件夹中添加编码格式:
打开jenkins.xml文件然后添加: -Dfile.encoding=utf-8
这个的意思就是说,我们通过jenkins启动jar的时候,采用utf-8的编码格式。
这样就能将格式统一为utf-8了。也就能避免上面的乱码情况了。
3.重启JenKins 让配置生效:
在你的JenKins 访问地址后,加上restart 然后就可以进行重启jenkins了。
4.验证
如何验证我们的修改是否有效果呢?很简单,我们重启成功后访问Manage Jenkins菜单下面的:System Information
当我们看到 file.encoding : GBK 改为了utf-8。那就代表我们修改成功了。
如果重启之后,还是GBK并没有变为utf-8 的话。
有几种可能:
1.你在JenKins.xml文件中配置不正确。
2.你修改后没有保存xml文件就重启了。
3.如果一次重启没有成功,你多重启两遍。如果仍然还是不行,那么我这个方法可能对你并没有太好的效果。
这个编码格式的改变,其实主要是jenkins.xml文件上修改的。
评论区