Javascript mailto字符串丢失';encodeURI';编码

Javascript mailto字符串丢失';encodeURI';编码,javascript,html,mailto,Javascript,Html,Mailto,尝试使用javascript创建一个简单的“mailto”函数。我只需要能够发送一些链接(如:见本文bla-bla) 我需要发送的一些链接包括空格、丹麦字符。所以我一直在用 encodeURI()函数 当我尝试发送链接时,问题出现了(下面的示例代码) 如果我将_tempString输出到控制台,我将得到正确的编码字符串。但是,当在“mailto”中使用同一字符串时,该字符串将丢失其编码并返回到以前的方式 关于这是为什么有线索吗 提前感谢:)当您单击链接时,它会被解码-这很正常。因为在mailto

尝试使用javascript创建一个简单的“mailto”函数。我只需要能够发送一些链接(如:见本文bla-bla)

我需要发送的一些链接包括空格、丹麦字符。所以我一直在用 encodeURI()函数

当我尝试发送链接时,问题出现了(下面的示例代码)

如果我将_tempString输出到控制台,我将得到正确的编码字符串。但是,当在“mailto”中使用同一字符串时,该字符串将丢失其编码并返回到以前的方式

关于这是为什么有线索吗


提前感谢:)

当您单击链接时,它会被解码-这很正常。因为在mailto链接中有一个http链接,所以应该对它进行两次编码

电子邮件客户端尽其所能使链接看起来可以点击。它们通常以某种任意和不可预测的方式决定链接的结束位置

在电子邮件中,保持链接连续的最佳方法是将其用尖括号括起来,如下所示:

<带空格>


但这并不是万无一失的。电子邮件是脆弱的,你不能用mailto链接很好地控制内容。最好是尽量降低url的复杂性——可能是通过提供或利用url缩短器服务。任何长度超过74个字符左右的url都可能被某些电子邮件客户端损坏。

此网站帮助我解决了mailto链接的任何问题:

也许这不是最好的方式,但它总是适用于我所知道的每一个浏览器。它还实现了非常酷的算法来格式化内容,这样一切都应该正常。只要尝试一下,通过引用部分代码来玩转代码,你就会很快理解那里到底发生了什么,以及如何根据自己的意愿修改它。虽然有点晚了,但我希望这一条能帮助任何人检查这个问题


虽然它是德语,但您只需复制此处显示的代码并运行它并进行实验。

您应该使用
encodeURIComponent
而不是
encodeURI


更多信息。

您的意思是,当鼠标悬停时,它在浏览器的状态栏中显示已解码的链接吗?它可能只是您的浏览器对其进行解码以显示用户友好的mailto:链接。您的邮件收件人:是否按预期工作?这或多或少是一个仅链接的问题,并没有具体回答所问的问题。
       var _encodedPath = encodeURI(path);
       var _tempString = "mailto:someemail@somewhere.dk?subject=Shared%20from%20some%20page&body=" + _encodedPath;