百分比编码
**百分比编码**是一种用于编码在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
消息中使用的百分比编码版本),或在 URL 中转换为 '%20'
。
另请参阅
- 维基百科中百分比编码的定义。
- RFC 3986,第 2.1 节,其中定义了此编码。
encodeURI()
和encodeURIComponent()
— 用于百分比编码 URL 的函数