【问题标题】:Creating Outlook mail with Swedish characters from UTF-8-encoded webpage从 UTF-8 编码的网页创建带有瑞典字符的 Outlook 邮件
【发布时间】:2011-01-25 09:39:44
【问题描述】:

我有一个数据库驱动的网站,用 php 编写,需要根据数据创建电子邮件。所有数据和每一页都以 UTF-8 编码,并包含大量瑞典字符 åäö。我的邮件链接中有以下内容:

<a href="mailto:name@domain.com?body=Hej!%0D%0AåäöÅÄÖ">Mailto-link</a>

电子邮件正文应该是这样的

Hej!
åäöÅÄÖ

至少在 Internet Explorer 8 和 Firefox 中(尚未在 Chrome 或 Safari 中测试过)与 Outlook 2007 一起使用。但是,在 Internet Explorer 7 或更早版本中,åäö 显示为奇怪的字符。我们的许多客户都被 IE 6 和 7 所困扰。关于如何使这项工作发挥作用的任何建议?

【问题讨论】:

  • 链接是否在 IE6/7 中正确显示,或者它们显示的“坏”字符是否与 Outlook 打开新邮件时显示的相同?
  • @jesse:链接在 IE7 中正确显示,因此在浏览器和 Outlook 之间显示错误。

标签: php internet-explorer email character-encoding outlook-2007


【解决方案1】:

如果您遇到此类问题,只需将导致问题的内容放入此 Javascript 警报语句中,然后将其粘贴到 Opera 或 Firefox 等体面浏览器的地址栏中。

javascript:alert(escape("problem-string-here"));

例如,如果你执行

javascript:alert(escape("åäöÅÄÖ"));

你会得到%E5%E4%F6%C5%C4%D6。您可以复制警报语句显示的文本,然后在您的 mailto 链接中使用它:

mailto:name@domain.tld?body=嘿!%0a%E5%E4%F6%C5%C4%D6

【讨论】:

  • 天哪,我几乎在那里开心了一阵子!使用它,它可以从 IE7 到 Outlook Express 6。但是,对于 IE8 和 Outlook 2007,它会变得混乱 - 特殊字符被完全删除。 +1 至少在我知道用户的计算机配置时给我一个解决方案。
【解决方案2】:

我认为,如果您尝试使用“mailto:”链接解决问题,那么可能存在的浏览器/电子邮件客户端组合的浪费数量会给您带来无穷无尽的痛苦。理论上 url-encoding 应该可以工作,但是当我过去涉足这个时,我发现直接从 PHP 发送电子邮件更容易。

但这带来了其他挑战,例如确保垃圾邮件发送者无法将您的服务器用作电子邮件网关(例如,在表单中使用联系 ID 号码而不是电子邮件地址)。验证码和速率限制可能也是一个好主意。

【讨论】:

  • 我想你很可能知道这一切的真相,因此我将其标记为答案。
【解决方案3】:

URL encoding 字符以及(不仅仅是换行符)可能有帮助。在 PHP 中,正确的函数是urlencode()

【讨论】:

  • 谢谢,但它没有帮助,而且它使每个“”(空格)变成“+”字符,即使在电子邮件中也是如此。
  • @Lizzan 啊,太糟糕了!在那种情况下,我不知道解决方案。总是同一个邮件客户端?
  • @Pekka 我不确定,但它可能总是伪装成 Outlook。不过,感谢您的尝试! =)
  • @Lizzan 是的。看看它是否适用于 ISO-8859-1 可能会很有趣,这是电子邮件的默认编码。
  • @Pekka 是的,我已经尝试过了,它可以工作,但是显示在同一页面上的数据变得不稳定。有没有办法为页面的一部分指定不同的编码?
猜你喜欢
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 2013-10-17
  • 2011-06-25
  • 2013-08-18
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
相关资源
最近更新 更多