使用UTF-8编码的网页创建包含瑞典语字符的Outlook邮件

时间:2011-01-25 09:39:44

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

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

<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.有关如何使其工作的任何建议吗?

3 个答案:

答案 0 :(得分:2)

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

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

例如,如果您执行

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

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

的mailto:?!name@domain.tld体=嘿%0A%E5%E4%F6%C5%C4%D6

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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