jenkins 流水线在windows节点执行时,日志打印的参数中文编码错误及格式错误,如下对比所示。
java -jar jenkins-cli.jar -s ${JENKINS_URL} -auth ${USERNAME}:${APITOKEN} build ${BUILD_JOB_NAME} -p word=你好 -p $'word2=�\255�\233�'
java -jar jenkins-cli.jar -s ${JENKINS_URL} -auth ${USERNAME}:${APITOKEN} build ${BUILD_JOB_NAME} -p word=你好 -p word2=中国
解决:
使用 withEnv
块来设置环境变量,确保在执行命令时使用正确的字符编码。
pipeline {
agent any
stages {
stage('Run Command') {
steps {
withEnv(['LANG=zh_CN.UTF-8', 'LC_ALL=zh_CN.UTF-8']) {
sh """
"${JAVA_HOME}" -jar jenkins-cli.jar -s ${JENKINS_URL} -auth ${USERNAME}:${APITOKEN} build ${BUILD_JOB_NAME} ${build_params}
"""
}
}
}
}
}