长风破浪会有时,直挂云帆济沧海。 —— 李白《行路难》

URL在线编码解码 - encodeURIComponent / decodeURIComponent

URL百分号编码 / URL解码 / 中文与特殊字符转义

输入
字符: 0
输出
字符: 0

URL 编码解码说明

URL 编码(百分号编码,RFC 3986)将 URL 中的非 ASCII 字符和特殊字符转换为 %XX 格式(如中文"中"→ %E4%B8%AD,空格 → %20),确保 URL 在 HTTP 传输中不被破坏。本工具支持中文、空格、符号等所有特殊字符的编解码,确保 URL 在 HTTP 传输中安全可靠。注意与 Base64 编码的区别:Base64 用于二进制数据转文本,URL 编码用于 URL 安全传输,如需 Base64 请使用 Base64编解码工具

使用场景

  • 前端 Ajax/Fetch 请求:GET 请求的查询参数中包含中文时,需用 encodeURIComponent 编码后才能正确传给后端。
  • REST API 调试:构造 API 请求 URL 时,路径或查询参数中的特殊字符(如 &、=、?)必须编码,否则会被误解析。
  • 链接分享:含有中文或特殊字符的 URL 复制后可能被截断或乱码,编码后的链接安全稳定。
  • 表单数据提交:application/x-www-form-urlencoded 格式要求表单数据经过 URL 编码(空格编码为 + 或 %20)。

常见问题

encodeURIComponent 和 encodeURI 有什么区别?

encodeURIComponent 编码范围更广,会编码 / ? : @ & = + $ # 等 URI 结构字符,适合编码查询参数的"值"。encodeURI 保留上述字符,适合编码完整 URL 时保持结构不被破坏。本工具使用 encodeURIComponent(适合参数值编码),如需编码完整 URL 建议将路径和参数分开处理。

URL 编码后 % 符号本身需要再编码吗?

如果 % 是原始文本的一部分(而非编码结果),需要编码为 %25。例如字符串 "100% 完成" 编码后应为 "100%25%E5%AE%8C%E6%88%90"。本工具的 encodeURIComponent 会正确处理多字节 UTF-8 字符。

URL 中哪些字符不需要编码?

根据 RFC 3986,非保留字符(Unreserved Characters)不需要编码:大写字母 A-Z、小写字母 a-z、数字 0-9、连字符 -、下划线 _、点 .、波浪号 ~。其他所有字符都可能需要编码。

为什么浏览器地址栏中文能正常显示?

现代浏览器在地址栏对 URL 做了可视化解码(仅展示用),但复制粘贴或浏览器实际发送的 HTTP 请求中仍是编码格式。如果你看到地址栏有中文,复制后粘贴到记事本通常会自动变为编码形式。如需手动构造含中文的 URL,请务必先编码。