背景:在一次Jenkins 流水线构建任务发现,执行shell脚本时,脚本里面echo输出的中文在Jenkins控制台乱码的问题。
1. 环境
项目名 | 版本 |
---|---|
操作系统 | Ubuntu 22.04.5 LTS |
Jenkins | 2.487 |
2. 控制台乱码问题现象
Pipeline 流水线中 echo 输出中文正常显示,在执行 shell 脚本时,脚本里面的 echo 输出中文乱码,如下图:
3. 解决方式
3.1. 修改 Jenkins 全局变量
系统管理
>> 系统设置
>> 全局属性
>> 环境变量
# JAVA环境
键: JAVA_OPTS
值: -Dfile.encoding=UTF-8
# 系统环境
键: LANG
值: zh_CN.UTF-8
3.2. 修改 Jenkins 启动参数
systemd方式启动
vim /usr/lib/systemd/system/jenkins.service
增加配置:
Environment="JAVA_OPTS=-Dfile.encoding=UTF-8"
# 重新刷新配置并重启jenkins
systemctl daemon-reload && systemctl restart jenkins
java方式直接启动
java -Dfile.encoding=UTF-8 -jar jenkins.war
4. 验证
-
进入
系统管理
>>系统信息
找到系统属性下的file.encoding
查看值是否为 UTF-8
-
重新构建
控制台中文正常显示
关于我
我是一名运维工程师,专注于系统运维、自动化部署、CI/CD流水线优化等领域。拥有多年的技术积累,熟悉多种Linux发行版、容器化技术、云计算平台,以及各种DevOps工具链。如果你需要解决服务器运维、环境搭建、系统优化或其他相关问题,我可以为你提供高效、可靠的技术支持。
