UTF8中的特殊字符mailto:subject = link和Outlook

Ric*_*222 14 php email outlook encoding utf-8

我正处于重新编码正式使用iso-8859-1字符编码的网站的最后阶段,但现在整个都是UTF-8.

问题是当使用特殊字符时,mailto href链接的主题部分不能与Outlook一起使用.我得到了通常的乱码字符表示,指示单击链接时出现明显的字符编码问题,并在Outlook中弹出新的邮件窗口.

我已经尝试过rawurlencode()来修复这个问题,但这似乎不适用于Outlook ...

<a href="mailto:blah@blah.com?subject=<?=rawurlencode($subj);?>">send email</a>
Run Code Online (Sandbox Code Playgroud)

所以后来认为,Outlook必须坚持不同的编码,并尝试首先解码主题字符串的utf-8 ...

<a href="mailto:blah@blah.com?subject=<?=rawurlencode(utf8_decode($subj));?>">send email</a>
Run Code Online (Sandbox Code Playgroud)

答对了!很棒的Outlook.但现在其他一切都失败了:(

我找不到适用于所有邮件客户端的解决方案.

当整个页面显示在iso-8859-1中时,它在所有邮件客户端上都运行良好.但不是当页面内容是utf-8时.

不幸的是,客户希望保留这个直接的电子邮件链接,尽管它下面有一个正常运行的邮件表单!

这有一个快乐的解决方案吗?

小智 9

如果你使用utf-8试试这个:

<?php $subject = "=?UTF-8?B?" . base64_encode($subject) . "?="; ?>
Run Code Online (Sandbox Code Playgroud)