URL 高级编解码

🔤 URL Advanced Encode/Decode

Encode or decode URLs and query strings with advanced handling for special characters.

📐 工作原理与说明
URL 百分号编码与解码。
  • 规则:除 unreserved 字符(A-Za-z0-9 与 - _ . ~)外,其余字节编码为 %HH。
  • 两个函数:encodeURI 保留 URL 结构字符(: / ? #),encodeURIComponent 对全部保留字符编码,适用于参数值。
  • 空格:路径中应为 %20;表单编码(application/x-www-form-urlencoded)中可写作 +。
  • 中文:必须先按 UTF-8 取字节,再逐字节做百分号编码。

📖 模式说明

encodeURIComponent: 编码所有特殊字符(除 A-Za-z0-9-_.!~*'())

encodeURI: 保留 URL 结构字符 (:/?#[]@!$&'()*+,;=)

Form: 表单提交,空格 → +

Query: 与 Form 类似,用于查询字符串

📚 深度解析:URL 高级编解码

💡 常见使用场景

  • 需要控制编码字符集(如保留 / 或 :)时做精细化编码。
  • 生成签名或回调地址时需要精确控制编码范围:保留 / 与 : 而只编码参数值,避免因编码不一致导致签名校验失败。
编码保留斜杠
输入 `a/b` 选择“编码所有非安全字符”→ 输出 `a%2Fb`;选择保留路径分隔符则保持 `a/b`。

❓ 常见问题(FAQ)

什么时候要保留斜杠?
编码路径段时通常保留 /,编码查询值时应编码 /。
为什么两次编码结果不同?
因为 encodeURI 与 encodeURIComponent 的编码范围不同:前者保留 URL 结构字符(: / ? # 等),用于编码整个 URL;后者连这些也编码,用于编码参数值。混用会导致签名不一致或解析错误。规则很简单:编码「整个 URL」用前者,编码「参数值」用后者。
⚠️ 使用说明与注意事项
📖关于「URL 高级编解码」 ▼

📝工具简介

URL 高级编解码。专为开发者打造的在线工具,纯前端运行,代码不离开浏览器。