优秀的编程知识分享平台

网站首页 > 技术文章 正文

Jenkins Slave Windows输出乱码_jenkins 控制台输出乱码

nanyue 2025-02-18 12:36:42 技术文章 5 ℃

1. 现象

不使用mask-passwrd一切正常,使用后控制台中文乱码

Windows为slave,Jenkins是Centos Linux,执行相关Bat任务,乱码

1.1 Windows中执行命令无误

2. 原因分析

Jenkins终端编码解码方式不一致

同时Windows端默认GBK编码,而Jenkins都已经设置为UTF-8,在执行过程中,如果执行脚本,脚本应该更改为UTF-8

如:chcp 65001

3. 解决方法

3.0 en_US.UTF-8 和 zh_CN.UTF-8区别

根据网上说法:

都属于UTF-8的编码方式,区别只是语言环境,比如时间 、数字等习惯的不同,字符集是 Unicode,包含的字符数量是基本上一样的

en_US.UTF-8:你说英语,你在美国,字符集是utf-8
zh_CN.UTF-8:你说中文,你在中国,字符集是utf-8

3.1 Jenkins设置Master为UTF-8

【Manage Jenkins】--> 【Configure System】--> 【全局属性】-->【Environment variable】

添加LANG值: zh_CN.UTF-8

3.2 Slave Windows设置环境变量

**在Windows节点中配置环境变量

【配置从节点】-->【Environment variable】

添加LANG: zh_CN.UTF-8

3.3 设置JAVA连接环境

在Windows节点中配置环境变量

【配置从节点】-->【Environment variable】

添加JAVA_OPTS: -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8

如上图

3.4 修改文件编码如果以上还不起作用

将文件全部转换为UTF-8编码

  • Jenkins调用时,起始行增加切换编码方式
  • chcp 65001
    :: 65001 是UTF-8的编码
  • 文件更改为UTF-8编码
  • 以Notepad++为例:
  • 菜单栏选择【编码】--> 【转为UTF-8无BOM编码格式】

3.5 其他

有兴趣的小伙伴,可以将Windows的默认编码格式更改,新创建的文件都将是UTF-8编码

【控制面板】-- 【时钟与区域】-- 【区域】-- 【管理】--【更改系统区域设置】

也可以使用快捷键【运行】-- intl.cpl

勾选Beta版:使用Unicdoe UTF-8提供全球语言支持

重启电脑

最近发表
标签列表