Skip to content
📈0️⃣

decodeURI 和 encodeURI 详解

大纲

  • decodeURI:用于对已经进行过 URI 编码的字符串进行解码。
  • encodeURI:用于对 URI 进行编码,不会对常见的特殊字符进行编码。

常用场景

  • decodeURI:当需要将已经编码过的 URI 字符串还原回原始状态时常使用。
  • encodeURI:在构建 URL 或处理包含特殊字符的字符串时常使用。

代码案例

decodeURI

javascript
var uri =
  "https://www.example.com/?q=JavaScript%20%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6";
var decodedUri = decodeURI(uri);
console.log(decodedUri); // "https://www.example.com/?q=JavaScript 特殊字符"

encodeURI

javascript
var uri = "https://www.example.com/?q=JavaScript 特殊字符";
var encodedUri = encodeURI(uri);
console.log(encodedUri); // "https://www.example.com/?q=JavaScript%20%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6"

注意事项

  • decodeURI 只能解码通过 encodeURI 编码的字符串,如果字符串是通过 encodeURIComponent 编码的,则需要使用 decodeURIComponent 进行解码。
  • encodeURI 可能会导致一些特殊字符在 URL 中没有被正确编码,因此在某些情况下可能需要使用 encodeURIComponent 进行更严格的编码。