JavaScript 中 decodeURIComponent() 和 decodeURI() 函数的区别
decodeURI()和decodeURIComponent()都是 Javascript 全局函数,用于解码编码的 URI(统一资源标识符)。
decodeURI()函数:它解码先前由 encodeURI()函数编码的字符串。它通过用它所代表的字符替换每个UTF-8转义序列来返回一个解码的 URI。
- 句法:
decodeURI(encodeURI(x));
- 参数它包含单个参数,其中包含先前由 encodeURI()函数编码的字符串,因此结果将再次为 x。
- 示例:此示例使用decodeURI()函数。
HTML
decodeURI() Example
HTML
decodeURIComponent() Example
- 输出:
http://www.testing.com/
http%3A%2F%2Fwww.testing.com%2F
decodeURIComponent()函数:它解码先前由 encodeURIComponent()函数编码的字符串。它通过用它所代表的字符替换每个 UTF-8 转义序列来返回一个解码的 URI 组件。它可以解码 %00 和 %7F 之间的任何值。
- 句法:
decodeURIComponent(encodeURIComponent(x));
- 参数单个参数,包括先前由 encodeURIComponent() 编码的字符串,因此结果将再次为 x。
- 示例:此示例在 decodeURIComponent() 上
HTML
decodeURIComponent() Example
- 输出:
http://www.testing.com/
http://www.testing.com/
注意:这两个函数都会抛出URIError ,表示字符串中的一个或多个转义序列格式错误,无法正确解码。
decodeURIComponent() 和 decodeURI()函数的区别:
- decodeURI():它需要 encodeURI(url)字符串,所以它不能解码字符(, / ? : @ & = + $ #)
- decodeURIComponent():它需要 encodeURIComponent(url)字符串,所以它可以解码这些字符。
- decodeURI():以 encodeURI(url)字符串为参数,返回解码后的字符串。
- decodeURIComponent():以 encodeURIComponent(url)字符串为参数,返回解码后的字符串。
- decodeURI(“%41”):返回“A”
- decodeURIComponent(“%41”)它返回“A”
- decodeURI(“%26”):返回“%26”
- decodeURIComponent(“%26”):返回“&”