Jenkins的ssh输出中文乱码

在Windows环境下,Jenkins通过SSH连接远程Linux并执行包含中文的shell脚本时出现乱码。尝试了在脚本中设置编码、在Jenkins配置中修改环境变量LANG等方式均未成功。作为临时解决方案,使用iconv将输出转换为GBK编码。具体操作包括新建一个FreeStyle的Jenkins job来执行相关任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

Windows上安装Jenkins,用它通过SSH登录远程Linux,执行shell脚本,中文输出乱码。

命令截图
脚本内容如下:

[tomcat@cdh06 ~]$ cat hello.sh
#!/bin/bash
echo hello,中国
echo PID is $$, PPID is $PPID

脚本文件是UTF-8编码
脚本截图

乱码
试过三种方法:

  1. 在脚本开头添加 export LANG=zh_CN.GBK,不起作用
  2. 在Jenkins中添加-Dfile.encoding=UTF-8,不起作用
### 解决 Jenkins 控制台输出中文乱码的方法 为了确保 Jenkins 控制台能够正确显示中文字符,可以采取以下措施: #### 设置文件编码为 UTF-8 进入系统管理—>系统信息页面,确认 `file.encoding` 字段已设置为 `utf-8`。这一步骤有助于确保整个系统的默认字符集被设定成支持多字节字符的格式[^1]。 ```bash # 验证当前配置是否生效 java -XshowSettings:properties -version | grep file.encoding ``` 如果发现该参数未按预期工作,则可能还需要进一步调整环境变量来强制指定 JVM 使用特定编码方式启动 Jenkins 实例。 #### 修改 Jenkins 启动参数 通过修改 Jenkins 的启动脚本,在其中加入 `-Dfile.encoding=UTF8` 参数以覆盖原有的编码设置。对于大多数 Linux 发行版而言,默认情况下可以在 `/etc/default/jenkins` 文件内找到相应的配置项;而对于 Windows 用户来说则需编辑服务属性中的命令行部分[^3]。 ```shell # 对于Linux/Unix/MacOS平台下的Jenkins安装包 sudo nano /etc/default/jenkins # 添加或更改JAVA_ARGS="-Dfile.encoding=UTF8" ``` #### 重启并验证效果 完成以上操作之后记得保存所做的任何改动,并按照常规流程停止再重新启动 Jenkins 服务器实例以便使新的配置选项得以应用。随后创建一个新的构建任务或是触发一次现有项目的重建过程,仔细观察控制台的日志记录情况看是否有改善迹象[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值