首页/安全/加密与证书速查/URL 编码(百分号编码)
加密算法基础95 条

URL 编码(百分号编码)

RFC 3986 定义的百分号编码:把保留字符与非 ASCII 字符转为 %XX 形式;参数拼接与签名串构造中高频踩坑来源之一。

加密与证书速查安全更新于 2026-10-12
标准RFC 3986
空格路径中常用 %20,查询串中可用 +(form 编码)
非 ASCII先按 UTF-8 编码再逐字节转义
场景查询参数、OAUTH 签名、重定向地址

Python 示例

Python 示例
import urllib.parse
print(urllib.parse.quote('中文 值'))        # %E4%B8%AD%E6%96%87%20%E5%80%BC
print(urllib.parse.quote_plus('a b&c'))   # a+b%26c
print(urllib.parse.urlencode({'q': '中文'}))
签名类接口要求「先按规范排序拼接、再统一编码」,编码顺序错误是高频的验签失败原因。

易错点

  • 同一参数被编码两次(%2520)会得到错误值,调试时打印原始串确认
  • 网关对不同编码形式(+ 与 %20)处理不一致,跨系统尽量统一用 %20

数据来源与参考

  • RFC 3986(URI 通用语法)
  • WHATWG URL Standard(查询串约定)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌