当需要在 URL 中传递参数时,为了避免特殊字符对 URL 的解析造成干扰,我们通常需要使用 encodeURIComponent 函数将参数进行编码。该函数会将一些特殊字符(如空格、问号和&等)替换为它们对应的百分比编码值。
以下是一个 JavaScript 使用 encodeURIComponent 函数的例子:
const url = 'https://example.com/search?q=' + encodeURIComponent('JavaScript & Web Development');
console.log(url);
在这个例子中,encodeURIComponent 函数被用于对搜索参数 "JavaScript & Web Development" 进行编码,以确保该参数不会干扰 URL 的解析。搜索参数经过编码结果如下:
JavaScript%20%26%20Web%20Development
其中 %20 表示空格字符,%26 表示 & 字符。最终生成的 URL 如下:
https://example.com/search?q=JavaScript%20%26%20Web%20Development
这个 URL 可以被安全地用于网页中或作为请求的参数,而不会对 URL 的解析造成任何问题。
用encodeURIComponent编码后的结果可以使用unescape()解码(注意: unescape()方法已被弃用)
unescape('JavaScript%20%26%20Web%20Development')
也可使用decodeURIComponent() 解码。
decodeURIComponent('JavaScript%20%26%20Web%20Development')