文章

Jenkins控制台中文乱码

设置环境变量 - 系统变量

JAVA_TOOL_OPTIONS

-Dfile.encoding=UTF8

image-20230612111846771

设置Jenkins

环境变量

http://localhost:8080/manage/configure

LANG

zh.CH.UTF-8

image-20230612112001924

Jenkins.xml

Difile.encoding=utf-8

image-20230612112151558

重启Jenkins

http://localhost:8080/restart

控制台编码格式和文件格式不一致

1
2
3
4
5
sys.getdefaultencoding()    #系统编码          ===>  utf-8
sys.getfilesystemencoding() #文件编码          ===>  utf-8
sys.stdin.encoding          #控制台输入流编码   ===>  gbk
sys.stdout.encoding         #控制台输出流编码   ===>  gbk
sys.stderr.encoding         #控制台错误流编码   ===>  gbk

无论我们的日志是什么编码,都将按照gbk来输出,然后jenkins这边会以utf-8来解析,所以出现乱码

1
2
3
4
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
本文由作者按照 CC BY 4.0 进行授权