URL 编码又叫百分号编码(Percent-Encoding),定义在 RFC 3986 中:把 URL 里不允许直接出现的字符先转成 UTF-8 字节,再把每个字节写成“%”加两位十六进制数,例如空格写成 %20,“中”写成 %E4%B8%AD。下面重点说明典型写法与场景。
URL编码常见用法
- 拼接带中文或特殊字符的查询参数
- 表单 GET/POST 提交(x-www-form-urlencoded)
- 把一个网址作为另一个网址的参数(如回调地址 redirect_uri)
- API 签名前对参数做规范化编码
示例
输入:Man
编码结果:Man
说明:按 RFC 3986 编码,空格为 %20,中文按 UTF-8。
注意事项
- 不要对整条 URL 重复编码,否则“%”会变成“%25”
- JavaScript 的 escape() 已废弃,中文会编成 %uXXXX 的非标准格式
- “+”在查询参数里可能被服务端当作空格
- 老系统用 GBK 编码中文,与 UTF-8 结果不同
中文的处理
中文 URL 编码按 UTF-8:“中”→ %E4%B8%AD,“文”→ %E6%96%87。浏览器地址栏会把编码后的中文显示成原文,但实际发送的是编码后的形式。
本站的URL编码解码工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【出现 %25 是怎么回事?】“%”被再次编码成了 %25,说明发生了重复编码。
【哪些字符不用编码?】字母、数字和 - _ . ~ 四个符号不用编码。
【空格应该编码成 %20 还是 +?】路径和 RFC 3986 规范里用 %20;表单格式(x-www-form-urlencoded)用“+”。不确定时用 %20 更安全。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。