nicetool.dev logo

URL 编码

将字符串安全地转换以用于 URL。

输入字符串
结果

什么是 URL 编码?

URL 编码(百分号编码)用于在 URI 中安全表示数据。

为什么要进行 URL 编码?

URL 仅支持 ASCII 字符,特殊字符必须编码。

  • / 用于分隔路径段。
  • ? 分隔路径和查询参数。
  • # 定义 URL 片段。
  • & 分隔查询参数。
  • 空格通常编码为 '+' 或 '%20'。

工作原理

将字符替换为 '%' 加上两位十六进制数。

'hello world' 会变成 'hello%20world'

URL 编码 / 解码使用方法

  1. 1

    选择 Encode 把文本转为可在 URL 中安全使用的形式,或选择 Decode 把 %20 这类百分号编码还原为可读字符。

  2. 2

    把完整 URL、查询参数值或任意文本粘贴到输入框中。

  3. 3

    结果立即显示。空格变为 %20,中文等非 ASCII 字符变为 UTF-8 字节("中" 变为 %E4%B8%AD),& 和 = 等保留字符会被转义。

  4. 4

    复制输出用于链接、API 请求、重定向或统计参数。切换模式即可检查反向转换。

实际应用示例

查询参数值

搜索 "coffee & tea" 必须以 q=coffee%20%26%20tea 发送,否则 & 会开启一个新参数,服务器只能收到 "coffee "。

查看跟踪链接

广告和跳转链接中常常嵌套着另一个编码过的 URL。解码后就能在点击前看到真正的目标地址。

中文 URL

中文路径在浏览器内部以百分号编码保存。解码 https://example.com/%E4%B8%AD 会得到可读的路径 "/中"。

OAuth 与重定向 URI

redirect_uri 参数必须完整编码。在这里编码可以避免因多出的 ? 或 / 导致的 "redirect_uri mismatch" 错误。

常见问题

什么是 URL 编码?+

也叫百分号编码(RFC 3986),它把 URL 中不允许或有特殊含义的字符替换为 % 加上每个字节的两位十六进制数。

空格应编码为 %20 还是 +?+

%20 在 URL 的任何位置都有效。+ 只在表单数据(application/x-www-form-urlencoded)的查询中表示空格,所以 %20 更稳妥。

encodeURI 和 encodeURIComponent 有何区别?+

encodeURI 会保留 / ? & = 等构成 URL 结构的字符,适合整个 URL;encodeURIComponent 会把这些也转义,适合单个参数值。

为什么解码失败?+

输入中有 % 后面没有跟两位有效的十六进制数,或者包含无效的 UTF-8 字节序列。请检查字符串是否被截断或被重复编码。