百分号编码
百分号编码(有时也被称为 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 的函数