【问题标题】:Is it better to use htmlentities when sending html emails with special characters?发送带有特殊字符的 html 电子邮件时使用 htmlentities 会更好吗?
【发布时间】:2012-02-11 12:51:59
【问题描述】:

我有 phpmailer 设置以从联系表发送电子邮件。我将页面设置为 UTF-8 字符编码,并在 PHPMailer 中将电子邮件编码指定为 UTF-8。这一切都很好,并允许我发送带有外国/特殊字符的电子邮件。我还将提交存储在 mysql 数据库中,并使用带有 UTF-8 编码的 htmlentities 将特殊字符转换为 html 实体,然后再将它们存储在数据库中。在将其包含在我发送的电子邮件中之前在电子邮件文本中使用 htmlentities 会更好吗(至少在它的 HTML 部分,可能不是纯文本)以确保在尽可能多的电子邮件客户端上可以访问所有字符可能还是没有区别?此外,我使用 enctype="multipart/form-data" 作为表单,它工作正常并且对我有意义,我只是想确保这是正确的?

干杯!

戴夫

【问题讨论】:

  • 如何绕过 PHPMailer 的内置 HTML 转义?
  • @Alvaro 我不知道!我没有意识到我是!我正在使用 $mail->CharSet = 'UTF-8';将其设置为 UTF-8 并在 html 正文的顶部定义内容类型,但这不应该影响我不认为的 HTML 转义?

标签: html forms character-encoding html-entities enctype


【解决方案1】:

大多数电子邮件客户端会自动理解特殊字符,但如果您真的有兴趣使其与所有接口兼容,则应使用标准 HTML 实体。 您可以在标题中使用类似的内容

<meta http-equiv="Content-Type" content="text/html charset=UTF-8" />

这个link 提供了一个简单而优雅的解决方案。

【讨论】:

  • 感谢您的回复和链接,如上所述,我已经在电子邮件标头中将内容类型设置为 utf-8(所以理论上这应该意味着不需要 html 实体编码)但是大概(如您所说)使其尽可能兼容,尽管将内容类型设置为 utf-8,但最好转换为 html 实体(对于消息的 html 部分,而不是纯文本)?干杯,戴夫
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 2014-06-13
  • 2010-12-15
  • 2018-05-06
相关资源
最近更新 更多