1. 问题现象
更换了windows构建环境,手动去执行python脚本不会报错,可是使用jenkins的时候脚本总是会异常退出,代码中加入Exception信息打印,发现了报错信息为:
UnicodeEncodeError: ‘charmap‘ codec can‘t encode characters
2. 原因分析
手动执行无问题,jenkins调度的时候会异常报错退出,是由于环境变量不统一导致两边的执行结果不一致,需要检查所使用的环境变量是否有差异性。而上面是因为jenkins中 system info中的file.encoding和sun.jnu.encoding值不一致导致上述报错
3. 解决办法
- 环境变量中增加下面两项
PYTHONIOENCODING=UTF-8
JAVA_TOOL_OPTIONS=-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8
- git中输入命令解决LF和CRLF问题
git config –global core.autocrlf false;
从而保证jenkins中 system info中的file.encoding和sun.jnu.encoding保持一致为UTF-8。