jenkins运行python代码报‘charmap‘ codec can‘t encode characters

本文探讨了如何在PyCharm本地运行正常但部署到Jenkins时遇到的中文输出问题,通过设置环境变量和修改编码策略,最终找到解决方案,包括修改系统注册表、调整cmd配置和使用PYTHONIOENCODING环境变量。
摘要由CSDN通过智能技术生成

在pycharm中运行脚本没有问题,但是跑到jenkins上运行报如下的错误
在这里插入图片描述
猜想和摸索:

  1. 难道cmd 编码有问题?不能输出中文?

为此我找了一大批参考资料

1)计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor,添加Autorun = @chcp 65001>nul

2)cmd -> 属性 -> 字体改为 kaiti

cmd 能美美地显示中文了,python auto_test.py, 很OK。 但是Jenkins里还是报一样的错

  1. Jenkins 自己编码有问题?

为此我又找了一大批参考资料。

jenkins.xml 添加 <env name="JAVA_TOOL_OPTIONS" value="-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8"/>
上边不行的添加到系统变量中
Manage Jenkins -> System info 里,确保下面两项显示 UTF-8

然而,依旧没有用,报一样的错
在这里插入图片描述
在这里插入图片描述
4. PYTHONIOENCODING = UTF-8
死马当活马医的最后,想想还是python 有点问题,因为jenkins运行python 脚本, 去找了 D:\Python37\lib\encodings\cp1252.py, 我怎么告诉它要去找 utf_8.py 呢?

查看了一些关于python的编码文章 —— 最终看到了环境变量 PYTHONIOENCODING

我选择加在 jenkins.xml里, <env name="PYTHONIOENCODING" value="UTF-8"/>

终于成功输出了中文!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值