Mic*_*ael 2 utf-8 character-encoding jenkins docker jenkins-pipeline
当从在 linux 容器内运行的声明性管道输出字符时,是否可以更改编码以匹配终端的真实输出?IE
??? file1 +-- file1
??? file2 +-- file2
??? file3 +-- file3
^Formatting I want ^Formatting I get
Run Code Online (Sandbox Code Playgroud)
.
我尝试将以下参数传递给我的 Docker 代理:
-e JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
-e LC_ALL="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)
.
结合:
sh returnStdout: true, script: " "
Run Code Online (Sandbox Code Playgroud)
并且用“œâ”€â”代替了“+--”,这似乎是“???”的ANSI编码。
我正在使用 ansiColor Option 但这似乎没有太大帮助。
.
我看到了这个类似的问题,但我不确定如何在管道中实施解决方案。
您可以使用 Jenkins II 将编码更改为 UTF-8。转到 Jenkins ->管理 Jenkins ->配置系统->全局属性
并添加两个envirenment变量JAVA_TOOL_OPTIONS和LANG具有值-Dfile.encoding=UTF-8和en_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>
Run Code Online (Sandbox Code Playgroud)
小智 6
以下是cloudbees的官方回答。不幸的是所有这些都不适合我。
将这些添加到 master 和代理中的 JVM 参数中 -
-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8505 次 |
| 最近记录: |