需要对 URI 进行编码和解码时,可以使用 encodeURI
和 decodeURI
函数。
1.encodeURI
encodeURI
将原始字符串中的空格和中文字符进行了编码,而保留了 :
、/
和 ?
等字符。这样的编码结果可以用于构建 URL。
let originalString = "https://www.example.com/?q=JavaScript 教程";
let encodedString = encodeURI(originalString);
console.log(encodedString); // 输出: "https://www.example.com/?q=JavaScript%20%E6%95%99%E7%A8%8B"
2.decodeURI
decodeURI
将经过编码的字符串恢复为原始字符串,并还原了其中的空格和中文字符。这些函数通常用于处理包含特殊字符或非 ASCII 字符的 URI,构建 Web 应用程序时,使用它们来处理用户输入的 URL 参数,以确保 URL 的正确性和安全性。
3.URL 元字符
在 URL 中,有一些特殊字符被称为 "URL 元字符",它们在 URL 中具有特殊含义或用途。这些特殊字符包括:
:
:用于指示协议部分和路径部分的分隔。/
:用于指示路径部分的层级结构。?
:用于指示查询参数的开始。#
:用于指示片段标识符的开始,通常在前端开发中用于锚点链接。&
:用于连接查询参数。=
:用于分隔查询参数的键值对。
这些字符在 URL 中具有特殊含义,因此如果需要在 URL 中使用它们作为普通字符,就需要对它们进行编码。可以使用 JavaScript 的 encodeURI
或 encodeURIComponent
函数来对 URL 元字符进行编码。
let originalString = "https://www.example.com/path?param1=foo¶m2=bar";
let encodedString = encodeURI(originalString);
console.log(encodedString); // 输出: "https://www.example.com/path?param1=foo¶m2=bar"