我正在尝试创建一个包含法语重音字符作为主题和电子邮件正文的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的英文和法文版本。任何人都知道如何让它工作?
答案 0 :(得分:3)
在IE 8中,它是一个设置选项。 工具 - &gt;选项 - &gt;高级。在国际下,选中“使用UTF-8进行mailto链接”选项。
在Windows XP下,默认情况下禁用此设置。 在Windows 7下,默认情况下启用。
希望这有帮助
答案 1 :(得分: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>
将电子邮件替换为您的地址。
答案 2 :(得分:1)
知道了!这可能是也可能不是Microsoft Outlook / Entourage中的错误。我将我的默认邮件阅读器更改为Mail.app,它与urlencoding完美配合。 (可能)错误似乎只会影响示例中2个带重音的e字符之一。也许Outlook / Entourage没有正确处理miltibyte UTF8字符?
答案 3 :(得分:1)
例如,使用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
再见!