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