HTML URL 編碼
URL 編碼是一種對 URL 資訊進行編碼的過程,以便可以通過 Internet 安全地進行傳輸。
什麼是 URL 編碼
根據 RFC 3986 ,URL 中的字元僅限於一組已定義的保留和未保留的 US-ASCII 字元。URL 中不允許任何其他字元。但 URL 通常包含 US-ASCII 字符集之外的字元。必須將它們轉換為有效的 US-ASCII 格式才能實現全球互操作性。
要對映全球使用的各種字元,需要使用兩個步驟:
- 首先,資料根據 UTF-8 字元編碼進行編碼。
- 然後,只有那些與未保留集中的字元不對應的位元組應該像%HH 一樣進行百分比編碼,其中 HH 是位元組的十六進位制值。
例如,字串: François 將被編碼為: Fran%C3%A7ois
Ç,ç(c-cedilla)是一個拉丁文字母。
保留字元
某些字元是“保留的”,因為它們可能(或可能不)通過特定 URL 方案中 的通用語法定義為分隔符。例如,正斜槓 /
字元用於分隔 URL 的不同部分。
如果 URL 元件的資料包含與保留的字符集衝突的字元(在 URL 方案中定義為分隔符),則衝突字元必須在形成 URL 之前進行百分比編碼。URL 中的保留字元為:
! |
# |
$ |
& |
' |
( |
) |
* |
+ |
, |
/ |
: |
; |
= |
? |
@ |
[ |
] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
%21 |
%23 |
%24 |
%26 |
%27 |
%28 |
%29 |
%2A |
%2B |
%2C |
%2F |
%3A |
%3B |
%3D |
%3F |
%40 |
%5B |
%5D |
非保留的字元
URL 中允許但沒有保留目的的字元稱為非保留字元。這些包括大寫和小寫字母、十進位制數字、連字元、句點、下劃線和波浪號。下表列出了 URL 中的所有未保留字元:
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
- |
_ |
. |
~ |