什么是 URL 编码?
URL 编码(百分号编码)是一种在统一资源标识符(URI)中编码信息的机制,通过将不安全的 ASCII 字符替换为 '%' 后跟两个十六进制数字来表示字符的字节值。
快速了解
| 全称 | 百分号编码 / URL 编码 |
|---|---|
| 创建时间 | 1994 年(RFC 1738,2005 年在 RFC 3986 中更新) |
| 规范文档 | 官方规范 |
URL 编码 工作原理
URL 编码确保 URL 只包含有效的 ASCII 字符。在 URL 中具有特殊含义的字符(如 &、=、?、/)或不允许的字符(如空格、非 ASCII 字符)必须进行编码。例如,空格变成 %20,& 符号变成 %26。这种编码对于在查询字符串、表单提交和 API 请求中传递数据至关重要。现代 Web 应用程序通常会自动处理 URL 编码,但理解它对于调试和 API 开发非常重要。
主要特点
- 用 %XX 十六进制格式替换不安全字符
- 空格可编码为 %20 或 +(在表单数据中)
- 保留字母数字字符(A-Z、a-z、0-9)
- 安全字符包括 - _ . ~
- UTF-8 字符编码为多个 %XX 序列
- 十六进制数字不区分大小写(%2f 等于 %2F)
常见用途
- URL 中的查询字符串参数
- 表单数据提交(application/x-www-form-urlencoded)
- API 请求参数
- 文件路径中的特殊字符编码
- 创建安全的分享链接
示例
原文: 你好世界!
编码: %E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C%21
原文: name=张三&city=北京
编码: name=%E5%BC%A0%E4%B8%89&city=%E5%8C%97%E4%BA%AC
原文: Hello World!
编码: Hello%20World%21