目录

  • 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的所有系统环境变量

jenkins查看控制台输出详细 jenkins把控制台输出到文件_tomcat


亲测只有在file.encoding为UTF-8时,工作空间和邮件发送的内容才会正常.

如果此处为GBK则查看自己的工作空间内含中文的文件都会显示乱码,构建后产生的文件中文也会乱码.

2.解决方法

首先添加系统变量。

变量名:

JAVA_TOOL_OPTIONS

变量值:

-Dfile.encoding=UTF8

jenkins查看控制台输出详细 jenkins把控制台输出到文件_jenkins查看控制台输出详细_02


增加完毕后,关闭tomacat所有服务

到tomcat的bin目录下

例如D:\APP\apache-tomcat-9.0.38\bin

jenkins查看控制台输出详细 jenkins把控制台输出到文件_java_03


在路径里输入cmd

进入命令行

输入

service install

jenkins查看控制台输出详细 jenkins把控制台输出到文件_jenkins查看控制台输出详细_04


到这里说明你的服务已经安装成功

可以使用exe启动

jenkins查看控制台输出详细 jenkins把控制台输出到文件_jenkins查看控制台输出详细_05


修改tomacat bin目录下 catalina.bat 文件,增加以下语句

set JAVA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox; default-src ""

jenkins查看控制台输出详细 jenkins把控制台输出到文件_jenkins查看控制台输出详细_06


保存,然后重启tomcat发现红色框框部分

jenkins查看控制台输出详细 jenkins把控制台输出到文件_tomcat_07

进入jenkins-系统管理-系统信息

jenkins查看控制台输出详细 jenkins把控制台输出到文件_jenkins查看控制台输出详细_08

-------------------------分割线---------------------------

jenkins查看控制台输出详细 jenkins把控制台输出到文件_jenkins查看控制台输出详细_09


可以看到编码已经修改过来了

3.以上操作后若jenkins控制台输出乱码(可选,python环境下乱码)

例如

jenkins查看控制台输出详细 jenkins把控制台输出到文件_jenkins查看控制台输出详细_10

增加jenkins全局环境,增加完成之后重启jenkins(此处最关键)

jenkins查看控制台输出详细 jenkins把控制台输出到文件_tomcat_11

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查看控制台输出详细 jenkins把控制台输出到文件_java_12

jenkins查看控制台输出详细 jenkins把控制台输出到文件_jenkins查看控制台输出详细_13

但是jenkins在执行cmd命令时的提示信息还是乱码

例如

jenkins查看控制台输出详细 jenkins把控制台输出到文件_java_14

原因是jenkins执行cmd是在本地缓存一个bat文件然后通过call 调用bat执行你输入的命令,此操作在win中执行属于GBK编码但是在jenkins的utf8的编码的控制台中打印出来则出现乱码

解决方法
在jenkins任务的构建中执行cmd命令的第一行增加

chcp 65001

jenkins查看控制台输出详细 jenkins把控制台输出到文件_java_15

这行命令可以使当前cmd窗口以utf8编码运行

之后即可正常运行

jenkins查看控制台输出详细 jenkins把控制台输出到文件_jenkins查看控制台输出详细_16

同理 chcp 936 可以实现使当前cmd窗口以GBK编码运行