spring-boot - Spring Boot 2.0.5 版的 Liquid 模板编码问题
问题描述
我正在使用 Spring Boot 2.0.5 版。和液体模板版本 0.7.8
我的问题是,当我在模板文件中使用德语文本并且发送邮件时,很少有德语字符转换成 ? 标记。
那么解决这个问题的方法是什么?
解决方案
沿着文本文件模板的路径某处,通过处理和作为电子邮件发送,字符编码被破坏,因此以一种方案编码的德语字符在另一种方案中被错误地呈现为错误的“字形” ,在电子邮件中。
首先要检查的是模板文件的编码是什么。然后调查电子邮件是如何呈现的。例如,如果它是 HTML 电子邮件,请查看标头中是否存在具有不同编码的字符编码引用,例如:
<head><meta charset="utf-8" /></head>
如果这与文件的编码不同,例如 ISO-8859-1,那么我会尝试的第一件事是将模板重新保存为 UTF-8,您应该能够在大多数 IDE 或高级文本编辑器中执行此操作,例如记事本++
(由于字形是问号,因此模板可能是 UTF-8 或 UTF-16,而 HTML 的字符集更有限。)
如果这不起作用,那么您可能需要查看您的代码并注意模板中的原始字节如何转换为字符串。例如:
String template = new String(bytesFromFile);
将使用系统默认字符集,这可能与文件不同。将字节转换为字符串的安全方法是指定字符集:
String template = new String(bytesFromFile, "UTF-8");
推荐阅读
- c# - 如何使用以前的用户输入打开活动仍然存在 Xamarin
- ruby-on-rails - 如何在 heroku 上推送 dockerized 项目
- python - 使用 reticulate 和 Anaconda3 从 R 中的 PyPi 安装包时出错
- javascript - discord.js awaitReactions 过滤器检查用户是否在与机器人相同的频道中
- python - CA 的证书路径
- swift - 在可观察对象数组上使用滚动视图时出现重复键错误(swift)
- git - 解决 git pull (错误:“将覆盖本地更改”),如合并冲突
- c# - 使用 GECKO FX c# 的内容文档 iframe 始终为空
- php - 在 Vuejs 组件中使用 PHP 变量
- excel - 代替外部链接,我们需要内部链接 b/w 合并的工作簿,使用 VBA