我使用的是Spring Boot版本2.0.5。和liquid template版本0.7.8
我的问题是,当我在模板文件中使用德语文本时,当我发送邮件时,很少有德语字符转换为?马克。
那么这个问题的解决方案是什么呢?
发布于 2019-11-14 20:30:10
沿着来自文本文件模板的路径的某处,通过处理并作为电子邮件发送,字符编码被破坏,使得在一种方案中编码的德语字符在电子邮件中被错误地呈现为另一种方案中的错误“字形”。
首先要检查的是模板文件的编码是什么。然后调查电子邮件是如何呈现的。例如,如果是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");https://stackoverflow.com/questions/58488108
复制相似问题