持续集成 Jenkins 通过邮件模板发送 html 片段,中文出现乱码

faith · 2016年12月26日 · 最后由 あの子 回复于 2019年07月11日 · 9764 次阅读

配置了邮件模板,邮件接收到测试报告,报告中有中文,中文出现乱码(Windows 环境),模板设置如下:

发送邮件乱码如下:

网上搜索在模板中增加
还是不行。
请大家帮忙解答下。谢谢。

共收到 58 条回复 时间 点赞

jenkins 中直接查看 html 是正常的,通过邮件发送就出现乱码了。

gbk 试试?

jenkins 里有个设置发送邮件内容的格式的,你去改了试试

#1 楼 @faith 在 jenkins 的管理页面里看看 jvm 的默认编码是不是 gbk 之类,是的话把 jvm 启动参数改了重启试试

-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8

为啥非得要这样处理啊,把测试概况截个图发邮件,邮件里领导才不关心你具体的用例呢,然后再加一个链接到 jenkins 的 html 不就行了么

@keithmork 亲 可以详细些么?😂 😁

@jaychang1989 如何修改呢?改成什么样的呢?

@Lihuazhang 改成 gbk?还是不行。

${FILE,path="report/html/xxx.html"}


就这部分 乱码了。

= = 在 jenkins 里面 输入这个命令 System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

faith #11 · 2016年12月27日 Author

@jizyy · 不行,这个对发送的邮件 html 片段无效。😂

@faith 喔喔哦 我没看清, 开始以为跟我原来报告一样 js 失效。 你继续问问别人吧= =

faith #13 · 2016年12月27日 Author

@jizyy 谢谢。😄

项目配置管理有一个 Content Type,设置为 HTML(text/html)

faith #44 · 2016年12月28日 Author

@jaychang1989 嗯 邮件模板中就是这样配置的。不起作用,这问题 太奇怪了。

遇到同样问题了,楼主解决了吗?

遇到同样问题了,楼主解决了吗??

faith #18 · 2017年03月02日 Author

@jlminghui 一直没有找到解决的办法

试一下在 html 文件中,设置编码为 utf8


HarrisChu 回复
<head>
<meta charset="UTF-8">

遇到了同样的问题 请问解决了吗?

faith #22 · 2017年04月17日 Author

@zgxlz 木有解决。。。

faith 回复

我也遇到了这个问题,并且还有图片显示不出来的问题

faith #24 · 2017年05月18日 Author

@banzhihuilan 什么图片呢。?乱码问题 没找到解决办法

我刚解决了~你把 jenkins 里邮件的配置全部改成 GB2312,然后把 jmeter 里的 jmeter-results-detail-report_21.xsl 文件里的 out 格式也改成 GB2312,我也是在别人博客看到的,你看看这个http://blog.csdn.net/u010037124/article/details/38468751

faith #26 · 2017年05月27日 Author

@18067979902 非常非常感谢,纠结很久的问题,终于解决了。。。爱心。。😝 😝

27楼 已删除

@18067979902 修改之后点击的链接,查看内容出现了乱码有遇到过吗?邮件里面查看正常了。

遇到了~哈哈,我也正在纠结啥情况~不过我看了下,原因貌似是因为,用那个 html report 打开的时候,又默认把 html 文件的头啊,body 啊那些又写了一遍,貌似重复了,不知道是不是这个原因,我也还没解决,你解决了跟我说下

LZ,我也遇到这种问题,请问 下你最后改了那几处的配置,我把 jenkins 邮件的配置成 GBK,模板和 ant 里面都改成了 GBK,还是乱码的

faith #31 · 2017年10月19日 Author

@leunggz 把 jmeter 里的 jmeter-results-detail-report_21.xsl 文件里的 out 格式改成 GB2312 试试

好帖~

faith 回复

楼主解决这个问题了没有?邮件和 jekins 报告总有一个乱码

faith #34 · 2018年01月04日 Author

@andrew 问题解决了。。在 Windows 的环境变量中添加:

JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF8

配置好后,重启 Jenkins 即可

仅楼主可见
faith #36 · 2018年03月22日 Author

@ghui 你好,可能是 Jenkins 邮件模板没设置好

faith 回复

好的,我再看看,谢谢啦

我干脆提示找不到 html 报告,有遇到这问题的吗?

faith #39 · 2018年04月09日 Author

@xiaolangjianke 确认 html 报告是否生成了

如果我在 jmeter-results-detail-report_21.xsl,改成 UTF-8 的话,Html Report 没有乱码,但邮件正文有乱码。如果我改成 GBK 的话,Html Report 有乱码,但邮件正文没有乱码,醉了,如果按你说的配环境变量,邮件正文和 Html Report 都是乱码,求解

faith #13 · 2018年04月09日 Author

@dongxinping 在 Windows 的环境变量中添加:
  JAVA_TOOL_OPTIONS  =  -Dfile.encoding=UTF8
配置完成后重启 Jenkins

其实不用改环境变量。改 xls 模板就可以解决

faith #44 · 2018年04月16日 Author

@john1688 具体修改哪里呢?

楼主你 file.path 中怎么写才能取到最新的报告?

faith #46 · 2018年04月18日 Author

@huiyiditou 只存最新的报告(固定报告名)

faith 回复

楼主,你说的修改环境变量完美解决问题了么

faith 回复

添加环境变量,好使,邮件和 jenkins 查看 html report 都没有乱码了,多谢。

banzhi 回复

跟我现象一样,解决了吗?

大家解决了么,我现在也遇到这个问题,邮件不乱吗控制台就乱码,控制台不乱码邮件就乱码,陷入死循环中,楼主说的 JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF8 这个已经配置,但是还是乱码,windows 系统,怎么解决的,求指导!!

加 -Dfile.encoding=UTF8 控制台就会乱码,有没有跟我一样的?怎么解决的

aptsmile 回复

跟你一样,哈哈哈,写英文啦~让报告是好的优先

我是 linux 系统,添加环境变量和修改 jenkins 格式或者 jmeter 的 xml 格式都不行呢。。。

aptsmile 回复

你这个问题解决了吗?我现在也遇到了,邮件不乱码就是控制台乱码

楼主,请问一下,我现在也遇到这个情况了。环境变量配置了,然后格式也改成了 GBK,都试了,现在不是邮件乱码就是控制台的 HTML report 乱码,请问你是怎么解决的呀?求解答,感激不尽

barry 回复

我的思路:执行脚本的构建里把 html 报告复制后重命名成 TestReport 到新建的 htmlTemp 文件夹,在判断测试结果的构建中读取 htmlTemp 文件夹下这个报告,这样原报告和临时的报告都能用了。(第二个构建在第一个构建后关联执行的,专门用来判断测试结果和发送邮件)
windows 命令行移动并重命名报告文件:
cd /d D:\JmeterTest\result_Log\html
dir /TC /O-D /B D:\JmeterTest\result_Log\html*.html > list.txt
For /f "tokens=1* delims=:" %%i in ('Type list.txt|Findstr /n ".*"') do (
if "%%i"=="1" copy D:\JmeterTest\result_Log\html\%%j D:\JmeterTest\result_Log\htmlTemp
if "%%i"== "1" del D:\JmeterTest\result_Log\htmlTemp\TestReport.html
if "%%i"== "1" rename D:\JmeterTest\result_Log\htmlTemp\%%j TestReport.html
)

faith 回复

楼主发送邮件片段到邮件上,能点击开详细数据么,我怎么点击不开,点击没有反应

JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF8 这个设置之后 Jenkins 都打不开了。。

设置环境变量重启之后邮件好了,但是控制台输出乱了😂 算了先这样把

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册