📜  JavaScript 中的 encodeURI() 和 decodeURI() 是什么?(1)

📅  最后修改于: 2023-12-03 14:42:30.077000             🧑  作者: Mango

JavaScript中的 encodeURI() 和 decodeURI() 是什么?

在 JavaScript 中,有两个内置的函数:encodeURI() 和 decodeURI(),这是一种用于网址和 URI 处理的编码方法。这两个函数的目的是用特定的格式编码字符串以保护它们不被意外更改或解释。在本文中,我们将学习这两个函数及其使用。

什么是 encodeURI()?

encodeURI() 函数用于编码整个 URI,因此可用于将 URI 片段和查询字符串中的非标准字符编码为浏览器可接受的 URI 字符集。它使用 UTF-8 字符集来编码字符。

语法
encodeURI(URIstring)
参数

URIstring:必需。一个字符串,包含用于编码的 URI 或 URL。

返回值

返回编码的字符串。

示例
const uri = "https://www.example.com/path/file.html?param=value&string=编码";
const encodedURI = encodeURI(uri);
console.log(encodedURI); // 输出结果: https://www.example.com/path/file.html?param=value&string=%E7%BC%96%E7%A0%81
什么是 decodeURI()?

decodeURI() 函数用于解码包含 URI 的字符串,还原被 encodeURI() 编码的字符。该方法不可以解码浏览器自动编码的字符,如空格和问号。该方法使用 UTF-8 字符集解码字符串。

语法
decodeURI(encodedURI)
参数

encodedURI:必须。一个已经编码的 URI 或 URL。

返回值

返回解码的字符串。

示例
const encodedURI = "https://www.example.com/path/file.html?param=value&string=%E7%BC%96%E7%A0%81";
const decodedURI = decodeURI(encodedURI);
console.log(decodedURI); // 输出结果: https://www.example.com/path/file.html?param=value&string=编码
结论

encodeURI() 和 decodeURI() 两个方法是一对通过 URI 编码和解码字符串的函数。它们都使用 UTF-8 字符集进行编码和解码。这种编码方法允许网址和URI中可以包含各种字符,包括非 ASCII 字符和特殊字符。

虽然编码和解码可以用于各种目的,但在浏览器中使用的最常见用途是用于从 URL 中获取传递的参数以及在 XHR 和 fetch 请求中将参数传递给服务器。因此,在我们构建 Web 应用程序时,了解并运用这些函数非常重要。