URL 编码器 / 解码器
将文本编码以安全用于 URL,或将百分比编码字符串解码回纯文本。支持标准、表单 (+) 和完整 RFC 3986 编码模式。
编码格式
特殊字符编码参考表
| 字符 | 标准 | 表单 (+) |
|---|---|---|
| (space) | %20 | + |
| & | %26 | %26 |
| = | %3D | %3D |
| + | %2B | %2B |
| / | %2F | %2F |
| ? | %3F | %3F |
| # | %23 | %23 |
| @ | %40 | %40 |
| % | %25 | %25 |
| ! | ! | ! |
* Full RFC 3986 mode only encodes unreserved characters (A–Z, a–z, 0–9, -, _, ., ~).
常见问题
URL 编码,又称百分比编码,将 URL 中不允许或具有特殊含义的字符转换为安全格式。每个不安全字符被替换为百分号 (%) 后跟两个十六进制数字,表示该字符的 UTF-8 字节值。例如,空格变为 %20,&符号变为 %26,斜杠变为 %2F。该标准由 RFC 3986 定义。
%20 和 + 都表示空格,但属于不同的编码标准。%20(标准 / RFC 3986)是空格的通用百分比编码,在 URL 的任何部分都安全。+(表单编码 / application/x-www-form-urlencoded)是 HTML 表单提交标准,浏览器在通过 GET 或 POST 提交时将空格编码为 +。请在 API 查询参数中使用 %20,仅在 HTML 表单提交时使用表单编码。
RFC 3986 定义了无需编码的非保留字符:字母 A–Z 和 a–z、数字 0–9、连字符 (-)、下划线 (_)、句点 (.) 和波浪号 (~)。其他所有字符——空格、&、=、+、/、?、#、@、%、非 ASCII Unicode——都必须进行百分比编码。如果不确定,请使用完整 RFC 3986 模式,它只允许通过 66 个非保留字符。
每当您在 URL 中包含用户提供的数据或特殊字符时,URL 编码都是必不可少的。如果不进行编码,?name=张三 & 李四 这样的查询会破坏 URL 结构,因为 & 是查询参数分隔符。在 REST API 中,URL 编码的参数确保请求完整地到达服务器。正确的 URL 编码对于 OAuth 令牌、JWT 查询参数以及作为查询值传递的重定向 URL 也至关重要。