首先只要遇到提示GBK、UTF-8或乱码显示字样等,这些肯定是编码问题。为了解决问题还特意了解了下UTF-8 与GBK之间的区别和关系 。修改file.encoding系统变量编码为UTF-8
问题情景:
python脚本已经调通过的自动化项目,部署到Jenkins上后,使用jenkins构建,控制台print输出报错,如下图:
控制台输出:
分析问题:
我们知道,windows的控制台默认编码就是'GBK',而我们代码编码格式是utf-8,因为Jenkins会默认读取当前系统的编码格式,这样就会导致Jenkins构建时中文乱码或报GBK转码问题,如上图的报错问题:'\u20ac'实际就是特殊字符'€'的转码格式。所以一切都是windows的控制台默认编码GBK问题。哪么我们知道,只要统一他的读写格式,省去Jenkins与python中间转码哪就能解决这个问题。
搜索解决办法:
果断百度一下,按照设置全局配置那里设置LANG :zn_CH.utf-8 ,结果无效。
查看了一下,系统管理--->系统信息--->系统属性的第三行可以看到系统编码格式为GBK。
注解:
file.encoding主要管理的是文件中的编码
sun.jnu.encoding 主要负责文件名类的编码