如何在javascript中双重编码URIComponent

How to double encodeURIComponent in javascript?

本文关键字:编码 URIComponent javascript      更新时间:2023-09-26

在我的 Web 应用程序中,我使用 mailto 链接打开 Outlook 2007。我还在正文中插入了一个网址。问题是我需要整个 url 是一个超链接。如果有任何空格,则超链接会断开,或者即使有任何特殊字符(例如以右括号结尾(,该字符也不会包含在超链接中,因此链接会断开。

我尝试在链接上使用encodeURIComponent,该 url 对其进行编码,但问题是在 Outlook 中,它会自动将其解码回正常状态,然后断开链接。我需要的是一种双重编码的方法。

基本上而不是做

" " -> "%20" (<-- encodeURIComponent (

我需要

" " -> "%2520"

因此,在 Outlook 中,%25被解码为 % ,当与20结合使用时,我%20保持链接编码一次而不会损坏。这对我有用,但我只是不知道如何执行此功能。

有谁知道我如何进行这种双重编码?

谢谢

编码

var encoded=escape(encodeURIComponent(' '));

解码

 var decoded=decodeURIComponent(unescape(encoded));