什么是 URL 编码?
URL 编码(百分号编码)用于在 URI 中安全表示数据。
为什么要进行 URL 编码?
URL 仅支持 ASCII 字符,特殊字符必须编码。
- / 用于分隔路径段。
- ? 分隔路径和查询参数。
- # 定义 URL 片段。
- & 分隔查询参数。
- 空格通常编码为 '+' 或 '%20'。
工作原理
将字符替换为 '%' 加上两位十六进制数。
将字符串安全地转换以用于 URL。
URL 编码(百分号编码)用于在 URI 中安全表示数据。
URL 仅支持 ASCII 字符,特殊字符必须编码。
将字符替换为 '%' 加上两位十六进制数。
选择 Encode 把文本转为可在 URL 中安全使用的形式,或选择 Decode 把 %20 这类百分号编码还原为可读字符。
把完整 URL、查询参数值或任意文本粘贴到输入框中。
结果立即显示。空格变为 %20,中文等非 ASCII 字符变为 UTF-8 字节("中" 变为 %E4%B8%AD),& 和 = 等保留字符会被转义。
复制输出用于链接、API 请求、重定向或统计参数。切换模式即可检查反向转换。
搜索 "coffee & tea" 必须以 q=coffee%20%26%20tea 发送,否则 & 会开启一个新参数,服务器只能收到 "coffee "。
广告和跳转链接中常常嵌套着另一个编码过的 URL。解码后就能在点击前看到真正的目标地址。
中文路径在浏览器内部以百分号编码保存。解码 https://example.com/%E4%B8%AD 会得到可读的路径 "/中"。
redirect_uri 参数必须完整编码。在这里编码可以避免因多出的 ? 或 / 导致的 "redirect_uri mismatch" 错误。
也叫百分号编码(RFC 3986),它把 URL 中不允许或有特殊含义的字符替换为 % 加上每个字节的两位十六进制数。
%20 在 URL 的任何位置都有效。+ 只在表单数据(application/x-www-form-urlencoded)的查询中表示空格,所以 %20 更稳妥。
encodeURI 会保留 / ? & = 等构成 URL 结构的字符,适合整个 URL;encodeURIComponent 会把这些也转义,适合单个参数值。
输入中有 % 后面没有跟两位有效的十六进制数,或者包含无效的 UTF-8 字节序列。请检查字符串是否被截断或被重复编码。