目录
- java和python通用的 解决jenkins,html报告乱码,工作空间文件内容乱码和控制台乱码的情况!或设置jenkins文件编码file.encoding为UTF-8,详细教程.
- 1.个人环境 (关键字,java,tomcat,jenkins,html,乱码,utf-8)
- 2.解决方法
- ~~3.以上操作后若jenkins控制台输出乱码(可选,python环境下乱码)~~
- 例如 ![在这里插入图片描述](https://s2.51cto.com/images/blog/202403/19012448_65f878e0d91b457389.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
- 但是jenkins在执行cmd命令时的提示信息还是乱码
java和python通用的 解决jenkins,html报告乱码,工作空间文件内容乱码和控制台乱码的情况!或设置jenkins文件编码file.encoding为UTF-8,详细教程.
1.个人环境 (关键字,java,tomcat,jenkins,html,乱码,utf-8)
windows下 jenkins为war包,放在tomcat9(为绿色win64位版本,此版本包含service.bat**) 的apache-tomcat-9.0.38\webapps目录下,我设置jenkins邮件发送html的文件(测试报告)总是乱码,自己的解决方案. linux下理论通用
且已经设置好java和tomcat的所有系统环境变量
亲测只有在file.encoding为UTF-8时,工作空间和邮件发送的内容才会正常.
如果此处为GBK则查看自己的工作空间内含中文的文件都会显示乱码,构建后产生的文件中文也会乱码.
2.解决方法
首先添加系统变量。
变量名:
JAVA_TOOL_OPTIONS
变量值:
-Dfile.encoding=UTF8
增加完毕后,关闭tomacat所有服务
到tomcat的bin目录下
例如D:\APP\apache-tomcat-9.0.38\bin
在路径里输入cmd
进入命令行
输入
service install
到这里说明你的服务已经安装成功
可以使用exe启动
修改tomacat bin目录下 catalina.bat 文件,增加以下语句
set JAVA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox; default-src ""
保存,然后重启tomcat发现红色框框部分
进入jenkins-系统管理-系统信息
-------------------------分割线---------------------------
可以看到编码已经修改过来了
3.以上操作后若jenkins控制台输出乱码(可选,python环境下乱码)
例如
增加jenkins全局环境,增加完成之后重启jenkins(此处最关键)
JAVA_TOOL_OPTIONS -Dfile.encoding=UTF8
LANG zh.CH.UTF-8
PYTHONIOENCODING UTF8
其中 PYTHONIOENCODING UTF8 用于解决windows下jenkins cmd 执行python xxx.py 输出日志出现乱码(即解决win jenkins 执行python 控制台日志乱码,总之全加上去就对了,以防万一)
综上所述解决的原理在于使内容都为utf8编码即可,以上为笔者实测解决了乱码问题
但是jenkins在执行cmd命令时的提示信息还是乱码
例如
原因是jenkins执行cmd是在本地缓存一个bat文件然后通过call 调用bat执行你输入的命令,此操作在win中执行属于GBK编码但是在jenkins的utf8的编码的控制台中打印出来则出现乱码
解决方法
在jenkins任务的构建中执行cmd命令的第一行增加
chcp 65001
这行命令可以使当前cmd窗口以utf8编码运行
之后即可正常运行
同理 chcp 936 可以实现使当前cmd窗口以GBK编码运行