URL 编解码教程
URL 编码解码工具怎么用?理解 %xx 编码原理,把中文、空格、特殊字符转成安全的 URL 编码。
什么是 URL 编码?
URL 编码把 URL 里的非 ASCII 字符和特殊字符转成 %xx 形式,确保 URL 能被浏览器和服务器正确解析传输。中文、空格、&、= 等都需要编码。
如何在线转码?
- 打开 URL 编解码工具
- 输入要编码或解码的字符串
- 选择「编码」或「解码」
- 复制结果
使用场景
- 构造带中文参数的 URL
- 调试接口、分析抓包里的 URL
- 理解链接里的 %20 等编码
常见问题
- %20 是什么?
- 空格的 URL 编码。
- 中文会自动编码吗?
- 浏览器通常自动编码,但手动构造 URL 时需自行编码。
总结
掌握 URL 编码能避免链接乱码、参数丢失等问题,是 Web 开发基础技能。
去使用 URL 编解码工具
参考资料
URL 编码的原理
URL(统一资源定位符)只能包含 ASCII 字符集中的安全字符。当 URL 中包含中文、空格、特殊符号等非安全字符时,需要将其转换为 %XX 格式的编码。每个字节用一个百分号加两位十六进制数表示。
常见编码对照
- 空格 →
%20(或 +,仅在 query string 中)
- 中文"你" →
%E4%BD%A0(UTF-8 编码的 3 个字节)
& → %26(参数分隔符,必须编码)
= → %3D(键值分隔符,必须编码)
/ → %2F(路径分隔符,视情况编码)
URL 编码的常见场景
- 中文搜索词:搜索引擎 URL 中的中文关键词需要编码,如
q=你好 → q=%E4%BD%A0%E5%A5%BD
- API 参数传递:GET 请求的参数值包含特殊字符时必须编码
- 表单提交:HTML 表单默认使用 application/x-www-form-urlencoded 编码
- 文件名处理:下载链接中的中文文件名需要编码
- OAuth 回调:回调 URL 作为参数时需要编码
URL 编码 vs Base64 编码
两者用途不同:
- URL 编码:将非安全字符转为 %XX 格式,用于 URL 传输。编码后长度增加,但可逆。
- Base64 编码:将二进制数据转为 ASCII 字符,用于数据传输和存储。编码后长度增加约 33%。
不要混淆两者。URL 中的参数值应该用 URL 编码,而不是 Base64。
常见问题(FAQ)
Q:编码后 URL 变得很长,正常吗?
正常。一个中文字符在 UTF-8 下占 3 字节,URL 编码后变成 9 个字符(%XX × 3)。所以包含中文的 URL 编码后会变长 3 倍左右。
Q:空格应该编码为 %20 还是 +?
在 URL 的路径部分,空格应编码为 %20。在 query string(问号后面的参数)中,空格可以编码为 + 或 %20,两者等价。但 + 是旧标准,建议统一使用 %20。
Q:编码一次就够了吗?
通常只需要编码一次。如果编码两次,% 本身会被再次编码为 %25,导致解码失败。如果遇到解码后仍是编码格式的情况,可能是被重复编码了,需要解码多次。