返回

javascript encodeURI和encodeURIComponent的用法和区别

2024-12-14 javascript encodeURI encodeURIComponent 71 0

在 JavaScript 中,encodeURI 和 encodeURIComponent 都用于对 URI(统一资源标识符)进行编码,但它们的作用范围和用途有所不同。

encodeURI 用于对整个 URI 进行编码。

保留 URI 中的特殊字符(如 :, /, ?, &, # 等),因为这些字符在 URI 中有特定的含义。encodeURI 适合编码完整的 URI。

encodeURI 语法示例:

encodeURI(URI)

const uri = "https://example.com/path?name=John Doe&age=25";
const encoded = encodeURI(uri);
console.log(encoded);
// 输出: https://example.com/path?name=John%20Doe&age=25

空格被编码为 %20。

特殊字符如 /, ?, &, = 等不会被编码。

encodeURIComponent 用于对 URI 的组件(如查询参数的值)进行编码。

会编码所有非字母数字的字符,包括 :, /, ?, &, # 等特殊字符。

适合编码 URI 的单个参数值或片段。

encodeURIComponent  语法示例:

encodeURIComponent(URIComponent)

const uriComponent = "name=John Doe&age=25";
const encoded = encodeURIComponent(uriComponent);
console.log(encoded);
// 输出: name%3DJohn%20Doe%26age%3D25

空格被编码为 %20。

特殊字符如 =, & 等也被编码为 %3D, %26。

encodeURI和encodeURIComponent的区别总结

特性 encodeURI encodeURIComponent
用途 对整个 URI 编码 对 URI 的某个组件或参数值编码
保留字符 保留 :, /, ?, &, = 等特殊字符 编码所有特殊字符,包括 :, /, ?, &, =
适用场景 编码完整的 URI 编码 URI 参数值或片段

最佳实践

  • 编码完整 URI:使用 encodeURI。
  • 编码 URI 的某个组件或参数值:使用 encodeURIComponent。

您可能感兴趣:

阿里云 云服务器 99元1年 2核2G 3M固定带宽 续费与新购同价

领取 通义灵码 免费使用资格 兼容 Visual Studio Code、Visual Studio、JetBrains IDEs 等主流编程工具, 为你提供高效、流畅、舒心的智能编码体验!

DOVE 网络加速器 梯子 免费 试用

顶部