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 进行更严格的编码。