Jenkins执行Python脚本后输出中文乱码处理方法

原因总结:

出现该问题的原因是因为Python默认输出打印文本的编码方式为:ANSI,具体不做详细解释。

解决方法:

在脚本执行第一次输出之前,使用代码将打印输出的编码方式给替换掉,因为上图中Jenkins 的编码方式已设置为UTF-8,故Python也需设置为UTF-8才行。

import io
import sys

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

查看文件编码方式方法

import sys
import importlib    # python3.4以后版本,3.4以前或2版本的可以导入imp库


# 查看文件默认编码方式
print(sys.getdefaultencoding())

# 因为setdefaultencoding函数在被系统调用后删除了,所以直接import的话无法使用setdefaultencoding函数,所以需要重新加载一下sys文件
importlib.reload(sys)

# 设置文件默认编码方式
sys.setdefaultencoding('utf-8')

                                                                                                         YX@的第十三篇文章

                                                                                                                        2022/05/20