一、问题详情

jenkins构建mav任务,在控制台显示乱码:

Jenkins控制台输出乱码 随笔 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

二、原因分析

1. 查看系统编码和tomcat的编码都正常

# grep encoding  /usr/local/tomcat/conf/server.xml 
<?xml version='1.0' encoding='utf-8'?>
# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

2. 查看jenkins-->系统管理-->系统信息--发现字符编码不对,都是ANSI_X3.4-1968而不是UTF8导致的。

Jenkins控制台输出乱码 随笔 第2张

Jenkins控制台输出乱码 随笔 第3张

三、解决方法

1. 在jenkins-->系统管理-->系统设置-->添加环境变量-->重启jenkins

键:JAVA_TOOL_OPTIONS
值:-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8

如下图:

Jenkins控制台输出乱码 随笔 第4张

2. 如果不生效可以在系统中添加一条环境变量

export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"

重启后发现恢复

Jenkins控制台输出乱码 随笔 第5张

 Jenkins控制台输出乱码 随笔 第6张

Jenkins控制台输出乱码 随笔 第7张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄