在一个mailto链接破碎重音字符(Broken Accented Characters in a

2019-08-16 19:27发布

我试图创建一个mailto链接包含法文重音字符的主题和邮件正文。 HTML和URI编码字符不起作用。 这里是我的代码:

<a href="mailto:%20?subject=ce%20titre%20est%20cass%C3%A9.&body=travaux%20deja!%20cesser%20d'%C3%AAtre%20t%C3%AAtu">SEND EMAIL</a>

相同的结果出现,而不URI编码:

<a href="mailto:?subject=ce titre est cassé&body=travaux deja! cesser d'être têtu">SEND EMAIL</a>

不管我怎么做,新的电子邮件开辟了破碎的字符。 URI编码的空间和换行符做工精细,但任何不ANSI坏了。 我要指出,我在英语和法语版本的MS Outlook 2007年任何人知道如何得到这个工作正在测试?

Answer 1:

在IE 8其一个设定选项。 工具 - >选项 - >高级。 根据国际勾选“使用UTF-8 mailto链接”。

在Windows XP下此设置默认为禁用。 在Windows 7默认启用的。

希望这可以帮助



Answer 2:

在邮件首部(包括受试者)一切都必须根据该RFC MIME编码的,

http://www.ietf.org/rfc/rfc2047.txt

这不是容易做到这一点,但你可以找到代码来处理大多数语言。

在正确编码的文本看起来像这样,

=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=

编辑:试试这个,看它是否是你想要的,

<a href="mailto:your@email.com?subject=%3d%3fISO-8859-1%3fB%3fY2UgdGl0cmUgZXN0IGNhc3Pp%3f%3d&Content-Type=text%2fplain%3b+charset%3dISO-8859-1&body=travaux%20deja!%20cesser%20d'%C3%AAtre%20t%C3%AAtu">SEND EMAIL</a>

与您的地址取代电子邮件。



Answer 3:

得到它了! 这可能是也可能不是在Microsoft Outlook / Entourage中的错误。 我改变了我的默认邮件阅读器Mail.app并与URL编码精美的作品。 的(也许)错误似乎只影响您的示例2级重音的é的人物之一。 也许展望/ Entourage中不正确处理miltibyte UTF8字符?



Answer 4:

例如,通过MooTools(但可能是另一个框架,甚至“原始”的JavaScript),我通常这样做,它的工作原理与主浏览器/客户端的MAC / PC:

window.addEvent('domready', function(){
    //get the links to encode
    var links_to_encode = $$('#page ul li a');

    links_to_encode.each(function(link){
        //check if the link has an href
        var original_href = link.get('href');
        if(original_href){
            //substitute it with the encoded version
            link.set('href',encodeURI(original_href));
        }
    });
});//fine domready

再见!



文章来源: Broken Accented Characters in a MailTo Link