【问题标题】:Sent email not using UTF-8未使用 UTF-8 发送电子邮件
【发布时间】:2022-01-09 21:51:55
【问题描述】:

我一直在使用 Thymeleaf 开发一个 Web 应用程序,该应用程序中的功能之一是在应用程序中完成某些更改后向用户(在本例中为测试用户)发送电子邮件。但是,当用户收到电子邮件时,消息会出现乱码,因为它不使用 UTF-8,到目前为止我还没有弄清楚问题出在哪里。我想知道是否有一些新鲜的眼睛可以看到我缺少的东西?

附:我目前使用的 IDE 是 IntelliJ。

提前致谢!

代码

import email.MailSender;

MailSender sender = MailSenderProvider.getMailSender();

sender.sendMail(studentEmail,"Du har fått en ny handledare","Hej! "+name+ " <br>" + "Du har fått en ny handledare "+ " <br>"+
                        "logga in på: "+  "<a href='vfusocionom.hig.se'>" + "Vfusocionom.hig.se " + "</a>"+ "<br>"  +"för att se extra detaljer"  );

【问题讨论】:

  • 欢迎来到 1990 年代。您应该研究 MIME 编码,因为它解决了这个问题。

标签: java html email utf-8 thymeleaf


【解决方案1】:

实际上,与您的说法完全相反的似乎是问题和解决方案。

立即想到 3 个解决方案:

  1. 经典解决方案。使用古老的 HTML 转义码来编码您的特殊字符,例如 &amp;uuml; für ü&amp;szlig; 用于 ß 等。您也可以使用 html 代码。例如,英镑货币符号£ 可以写成&amp;pound;&amp;#163;(十进制)或&amp;#x00A3;(十六进制),示例见https://www.w3schools.com/charsets/ref_utf_latin1_supplement.asp

  2. 由于您已经在使用 HTML,您可以在 &lt;!DOCTYPE&gt; 中定义语言,甚至在 &lt;html&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8" /&gt; 中指定正确的编码,如果它真的是 UTF-8。

  3. 也许问题甚至不是 UTF-8,而是您的 IDE 使用不同的编码保存文件。确保 .java 源代码文件实际上是 UTF-8 编码的。比如用notepad++打开,通过菜单手动设置编码为UTF-8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 2023-04-08
    • 2012-04-08
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多