百分号编码
百分号编码(有时也被称为 URL 编码)是一种拥有 8 位字符编码的编码机制,其中的编码在 URL 的上下文中具有特定的含义。编码由英文字母替换组成:“%”后跟替换字符的 ASCII 的十六进制表示。
需要编码的特殊字符有:':'、'/'、'?'、'#'、'[',']'、'@'、'!'、'$'、'&'、"'"、'('、')'、'*'、'+'、','、';'、'=',以及 '%' 本身。其他的字符虽然可以进行编码但是并不需要。
| 字符 | 编码 | 
|---|---|
':' | 
%3A | 
'/' | 
%2F | 
'?' | 
%3F | 
'#' | 
%23 | 
'[' | 
%5B | 
']' | 
%5D | 
'@' | 
%40 | 
'!' | 
%21 | 
'$' | 
%24 | 
'&' | 
%26 | 
"'" | 
%27 | 
'(' | 
%28 | 
')' | 
%29 | 
'*' | 
%2A | 
'+' | 
%2B | 
',' | 
%2C | 
';' | 
%3B | 
'=' | 
%3D | 
'%' | 
%25 | 
' ' | 
%20 或 + | 
根据上下文,空白符 ' ' 将会转换为 '+' (如使用百分号编码的 application/x-www-form-urlencoded 消息),或者将会转换为 '%20'(如 URL 中)。
参见
- 维基百科中百分号编码的相关定义。
 - RFC 3986 第 2.1 节,其中定义了这种编码方式。
 encodeURI()、encodeURIComponent()——用于百分号编码 URL 的函数