有一个代码可以将 jasper 报告发送到电子邮件
FORM notificationNewComment
OBJECTS c = Comment
PROPERTIES (c) ticketId, ticketSubject, text, employeeName
;
notifyEmployee(Comment c, Employee e) {
MESSAGE 'notify new comment: ' + name(e) LOG NOWAIT;
LOCAL bodyFile = FILE ();
PRINT notificationNewComment OBJECTS c = c HTML TO bodyFile;
EMAIL
SUBJECT 'TICKETID: [' + id(ticket(c)) + '] Новый комментарий к заявке'
TO address(defaultEmail(e))
BODY bodyFile()
NOWAIT
;
}
转移到生产环境(位于 Docker 中)后,西里尔字母停止显示。它看起来像这样:

我需要在设置中的某个位置设置编码吗?
以及它的链接
<link class=3D"jrWebFont" rel=3D"stylesheet" href=3D"lsf1652873724445115566=
8.html_files/DejaVu Sans_-en_US">
UPD1:我刚刚注意到信中的所有内容都正确显示。只不过所有的字符都换成了问号而已。显然以前在某个地方。
普通信件:
<div style=3D"padding-left:2px;padding-right:2px;"><span style=3D"font-fami=
ly: DejaVu Sans; color: #FFFFFF; font-size: 20px; line-height: 1; *line-hei=
ght: normal; font-weight: bold;">=D0=90=D0=9A=D0=A0: =D0=97=D0=90=D0=AF=D0=
=92=D0=9A=D0=98</span></div></td>
歪字:
<div style=3D"padding-left:2px;padding-right:2px;"><span style=3D"font-fami=
ly: 'DejaVu Sans_-en_US', 'DejaVu Sans'; color: #FFFFFF; font-size: 20px; l=
ine-height: 1; *line-height: normal; font-weight: bold;">=EF=BF=BD=EF=BF=BD=
=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD: =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=
=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD</s=
pan></div></td>
更新2:
操作系统:Ubuntu 22.04.3
DOCKER:Docker 版本 25.0.1,内部版本 29cf629
JAVA:openjdk 11.0.8 2020-07-14
LSFUSION:6.0-beta0 (292)
services:
server:
container_name: server
image: lsfusion/server:6.0-beta0
volumes:
- ./lsfusion:/lsfusion
networks:
- app
environment:
- LANG=ru_RU.UTF-8
- TZ=Europe/Moscow
- DB_PASSWORD=***
- DB_SERVER=***
- DB_USER=***
- DB_NAME=***
# - JAVA_OPTS=-Xmx4000m
restart: unless-stopped
client:
container_name: client
image: lsfusion/client:6.0-beta0
# ports:
# - 8080
depends_on:
- server
volumes:
- ./conf:/usr/local/tomcat/conf/Catalina
networks:
- nginx
- app
environment:
- LANG=ru_RU.UTF-8
- SERVER_HOST=server
# - SERVER_PORT=7652
# - JAVA_OPTS=-Xmx4000m
restart: unless-stopped
networks:
nginx:
external: true
app:
external: true

最有可能的是,Java 虚拟机的编码设置不正确。目前,lsFusion 并不完全支持 UTF-8 以外的所有编码。
要设置应用程序服务器的UTF-8编码,您需要将以下行添加到服务器启动参数中:
使用标准安装程序时,启动参数位于文件/etc/lsfusion6-server/conf/lsfusion.conf中- 行FUSION_OPTS=。