↓ 编码/解码结果 ↓
URL编码(Percent-encoding,百分号编码)是一种将URL中不安全或特殊字符转换为%XX十六进制形式的机制。根据RFC 3986标准,URL中只允许字母、数字和少量保留字符出现,空格、中文、特殊符号都必须经过编码才能安全地在网络中传输。
例如,中文"工具"经过URL编码后会变成 %E5%B7%A5%E5%85%B7。当您在浏览器地址栏看到一长串%开头的字符时,那就是URL编码后的结果。GET请求的查询参数包含中文、空格或&、=等保留字符时,必须先编码,否则服务器解析参数会出错。
| 函数 | 用途 | 不编码的字符 |
|---|---|---|
encodeURIComponent | 编码完整参数值 | A-Z a-z 0-9 - _ . ! ~ * ' ( ) |
encodeURI | 编码完整URL地址 | 上述字符加上 : / ? # [ ] @ ! $ & ' ( ) * + , ; = |
简单记忆:给整个网址编码用encodeURI,给单个参数值编码用encodeURIComponent。选错函数会导致URL结构字符(如://、&、?)被错误转义或参数被遗漏转义。
%20(或+,form表单提交方式)%E8%80%81(UTF-8三字节)%26、= → %3D、? → %3F%2F、: → %3A、# → %23