Spring Boot 2.0.5版的Liquid Template编码问题

时间:2019-10-21 14:11:23

标签: spring-boot liquid

我正在使用Spring Boot 2.0.5版本。和液体模板版本0.7.8

我的问题是,当我在模板文件中使用德语文本时,以及在发送邮件时,很少有德语字符转换成吗?标记。

那么解决方案是什么?

1 个答案:

答案 0 :(得分:0)

沿着文本文件模板的路径中的某个地方,通过处理并以电子邮件形式发送字符编码,该字符编码被弄乱了,因此,以一种方案编码的德语字符被错误地呈现为错误的“字形”。另一种方案,在电子邮件中。

首先要检查的是模板文件的编码。然后调查电子邮件的呈现方式。例如,如果是HTML电子邮件,请查看标头中是否有使用不同编码的字符编码参考,例如:

<head><meta charset="utf-8" /></head>

如果这与文件的编码不同,例如ISO-8859-1,那么我要做的第一件事就是在UTF-8中重新保存模板,您应该能够在大多数IDE或高级文本编辑器(如Notepad ++)中做到这一点

(由于字形是问号,因此模板可能是UTF-8或UTF-16,而HTML的字符集更为有限。)

如果这不起作用,那么您可能需要查看代码,并注意模板中的原始字节如何转换为字符串。例如:

String template = new String(bytesFromFile);

将使用系统默认的字符集,该字符集可能与文件不同。将字节转换为字符串的安全方法是指定字符集:

String template = new String(bytesFromFile, "UTF-8");