使用Jenkins DSL创建Groovy流水线作业时emoji显示为方块如何修复
修复方案
这个问题是字符编码不匹配导致的,Jenkins运行的JVM环境、DSL执行上下文没有统一使用UTF-8编码,Unicode格式的emoji字符无法被正常解析渲染,就会显示为方块替代符。按以下步骤修复即可:
- 调整Jenkins启动的JVM编码参数
无论你是用war包直接启动、systemd管理还是容器部署Jenkins,都需要给JAVA_OPTS新增两个参数:
配置完成后重启Jenkins服务生效。-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 - 统一DSL执行环境的编码
如果是通过Jenkins内的Job DSL任务执行配置脚本,在该任务的Groovy执行模块高级设置中,将默认编码指定为UTF-8;如果是外部CI流程/命令行触发DSL执行,需要先设置环境变量:export LANG=en_US.UTF-8 - 验证编码配置是否生效
可以临时在你的DSL脚本开头加入打印编码的逻辑,执行后看输出确认配置是否生效:println "当前JVM编码:${System.getProperty('file.encoding')}"
配置全部生效后重新执行DSL作业生成Pipeline,作业配置页的emoji就可以正常显示了。
内容的提问来源于stack exchange,提问作者hashchen
相关产品推荐
相关产品推荐

