首页 > 解决方案 > Jenkins 控制台打印编码字符

问题描述

从在 linux 容器内运行的声明性管道输出字符时,是否可以更改编码以匹配终端的真实输出?IE

├── file1                         +-- file1
├── file2                         +-- file2
└── file3                         +-- file3

^Formatting I want                ^Formatting I get

.

我尝试将以下参数传递给我的 Docker 代理:

-e JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8" 

-e LC_ALL="en_US.UTF-8"

.

结合:

sh returnStdout: true, script: " "

并用“––”–”代替了“+--”,这似乎是“├──”的ANSI编码。

我正在使用 ansiColor 选项,但这似乎没有多大帮助。

.

我看到了这个类似的问题,但我不确定如何在管道中实施解决方案。

Jenkins:控制台输出字符

标签: dockerjenkinsutf-8character-encodingjenkins-pipeline

解决方案


您可以使用 Jenkins II 将编码更改为 UTF-8。转到 Jenkins ->管理 Jenkins ->配置系统->全局属性

并添加两个环境变量JAVA_TOOL_OPTIONS并分别LANG具有值-Dfile.encoding=UTF-8en_US.UTF-8

.在此处输入图像描述

添加这些后,您可能需要重新启动 Jenkins。

参考https ://www.linkedin.com/pulse/how-resolve-utf-8-encoding-issue-jenkins-ajuram-salim/

更新:

或者您可以<arguments>jenkins.xml文件中更新。例如

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dfile.encoding=UTF-8 -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>

推荐阅读