URL 解码 JavaScript331


什么是 URL 解码?

URL 解码是将 URL 中编码的特殊字符转换为原始字符的过程。在 URL 中,某些字符(例如空格、尖括号和百分号)必须进行编码,以确保它们在传输过程中不会被误解或损坏。编码字符使用 %HH 格式,其中 HH 是字符的十六进制 ASCII 代码。

JavaScript 中的 URL 解码

JavaScript 提供了两个内置函数来对 URL 进行解码:`decodeURI()` 和 `decodeURIComponent()`。

1. `decodeURI()` 函数

`decodeURI()` 函数解码整个 URI(统一资源标识符),包括协议、主机名、路径和查询字符串。它将对 URI 中所有编码的字符进行解码,包括使用 %HH 格式编码的字符和使用十六进制编码的其他字符。

语法:decodeURI(uri)

参数:
uri:要解码的 URI

返回:

解码后的 URI

2. `decodeURIComponent()` 函数

`decodeURIComponent()` 函数解码 URI 中的特定组件,例如查询字符串或路径部分。它只解码使用 %HH 格式编码的字符,而不会解码使用其他编码的字符。

语法:decodeURIComponent(component)

参数:
component:要解码的 URI 组件

返回:

解码后的 URI 组件

示例:const encodedURI = "/path%20with%20spaces";
const decodedURI = decodeURI(encodedURI);
(decodedURI); // "/path with spaces"
const encodedComponent = "name=John%20Doe";
const decodedComponent = decodeURIComponent(encodedComponent);
(decodedComponent); // "name=John Doe"

注意:
如果传递给 `decodeURI()` 或 `decodeURIComponent()` 函数的参数不是有效的编码字符串,则函数将抛出 `URIError`。
这些函数不会解码使用其他编码(例如 base64 或 UTF-8)编码的字符。需要使用其他函数或库来处理这些类型的编码。

何时使用 URL 解码?

URL 解码在以下情况下很有用:
从服务器接收并解码已编码的 URL。
将已编码的 URL 存储在数据库或其他持久存储中。
将用户输入的 URL 解码以显示或处理它们。

通过使用 `decodeURI()` 和 `decodeURIComponent()` 函数,JavaScript 开发人员可以轻松地解码 URL 并处理包含特殊字符的字符串。

2025-02-09


上一篇:JavaScript 字符串截断方法

下一篇:JavaScript 时间正则表达式