我有一个用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.有关如何使其工作的任何建议吗?
答案 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()
。