js编码之 encodeURIComponent
这篇讲的是 JavaScript 中容易被混淆的 URL 编码。作者从三个核心函数——`escape`、`encodeURI` 和 `encodeURIComponent` 出发,清晰地拆解了它们的用途与区别。 文章重点剖析了最常用的 `encodeURI` 和 `encodeURIComponent`。`encodeURI` 用于编码整个 URL,它会保留 `:///?&=` 等 URL 结构字符,适合处理完整的、已知结构的地址。而 `encodeURIComponent` 则更为彻底,它会编码所有非字母数字字符,包括那些 `encodeURI` 保留的结构字符,因此专门用来编码 URL 查询参数中的值,确保像 `&`、`=` 这样的分隔符被安全地转义为 `%26`、`%3D`,防止参数值被错误解析。作者用实例说明,当动态拼接用户输入的查询参数时,使用 `encodeURIComponent` 是避免安全与逻辑问题的关键。 至于 `escape`,文章指出了它的历史地位和当前已不推荐使用的事实。