首先我要吐槽下windows的控制台默认编码GBK
情景:
使用jenkins构建,console 输出的中文乱码。这里因为脚本中调用了系统的taskkill指令,在进程存在时会杀掉。如果进程不存在则提示“错误XX进程不存在” 这一句可以正常的显示中文。但是后面脚本中print 的中文则不能正确显示。
摸索
不能忍,果断百度一下,按照设置全局配置那里设置LANG :zn_CH.utf-8 无效。
在jenkins下的jenkins.xml设置什么启动为utf-8也是无效。
但是查找资料期间发现,jenkins系统管理的系统信息
想到另一台linux下,未发现该问题,上去看看,里面有一个(大约是第三行)file.encoding UTF-8,而我本地的windows则是file.encoding GBK.
再往下拉,仔细看还有一个sun.jnu.encoding UTF-8
而我本地也是sun.jnu.encoding GBK
我觉得就是这里的问题啊。
这个是java层面的编码问题,所以在jenkins 里设置半天并没效果。
查了下java修改file.enciding UTF-8的方法。
在系统变量里添加启动参数: