使用mailto:选项时的特殊字符

时间:2014-07-09 18:21:38

标签: javascript html google-chrome encoding mailto

我在html中使用了一个简单的mailto选项,这样每当用户点击mailto时,它就会创建一个包含主题和正文的预定义电子邮件。问题是,功能正常但在货币符号之前有一个特殊的字符 ,我无能为力的原因。 另外,奇怪的是,只有当我使用chrome和而不是firefox 时才会发生这种情况。 (从未在IE中测试过) 有关如何进行此操作的任何说明? 代码非常简单直接

<a id="body_0_contentcolumn_0_hypOutlook" href="mailto:?subject=test subject&amp;body=Hi, how are you?%0A%0AI wanted to share a job I thought you might be interested in.Salary £15000.00- £25000.00%0A%0AYou can view more details and apply online here:www.apply.com">Outlook </a>

请找下面的小提琴..

Click here for Fiddle

我正在使用outlook 2013和Chrome 33

2 个答案:

答案 0 :(得分:3)

一切都与编码有关。

£是字符编号0xA3。当“正确”(即UTF-8)编码时,这将被转换为0xC2A3 - 巧合的是,你在那里有A3,这意味着渲染的结果,£,看起来像它只是从一个地方获得了“随机”。

解决方案:正确编码£。首先尝试&pound;,如果不起作用,请尝试%A3

答案 1 :(得分:0)

Per RFC 6068,“mailto:”链接是一系列ASCII字符。正文中的非ASCII字符必须由UTF-8表示,然后对其进行编码,然后对结果八位字节进行%编码。有意义的是,浏览器可能通过在“mailto:”链接中收敛非ASCII字符来尝试友好,但这也是一种不太常见的情况。报告针对Chrome的错误,但快速修复可能是自己执行UTF-8和%编码。