URL中的字符只能是ASCII字符,但是ASCII字符比較少,而URL則常常包含ASCII字符集以外的字符,如非英語(yǔ)字符、漢字、特殊符號(hào)等等,所以要對(duì)URL進(jìn)行轉(zhuǎn)換。這個(gè)過程就叫做URL編碼,或者叫URL轉(zhuǎn)義,實(shí)質(zhì)上就是將包含非ASCII字符的URL轉(zhuǎn)換為有效的ASCII字符格式。
在進(jìn)行URL編碼時(shí),每一個(gè)非ASCII字符都被替換為“%hh”格式,其中hh為兩位十六進(jìn)制數(shù),它對(duì)應(yīng)于該字符在ISO-8859-1字符集里的編碼值。比如“中國(guó)”這兩個(gè)漢字出現(xiàn)在URL,就要將他們轉(zhuǎn)為“%D6%D0%B9%FA”,由于一個(gè)漢字需要兩個(gè)字節(jié),所以“中國(guó)”被替換成了四個(gè)ASCII字符。
[java]view plaincopy
publicstaticvoidmain(String[]?args)throwsUnsupportedEncodingException{
String?s?="zhaoxiaofnag%40eims.com.cn?";
s=URLDecoder.decode(s,"utf-8");
System.out.println(s);
String?china?="%31%32%36%2E%61%6D/hEeGv4";
china?=?URLDecoder.decode(china,"utf-8");
System.out.println(china);
}
[plain]view plaincopy
另附上ASCII字符與URL編碼的對(duì)照表。
ASCII字符???URL編碼
空格?????%20
!?????%21
"????%22
#???%23
$????%24
%???%25
&????%26
'?????%27
(????%28
)????%29
*????%2A
+???%2B
,?????%2C
-?????%2D
.?????%2E
/????%2F
0????%30
1????%31
2????%32
3????%33
4????%34
5????%35
6????%36
7????%37
8????%38
9????%39
:?????%3A
;?????%3B
<???%3C?=???%3D?>???%3E
?????%3F
@???%40
A????%41
B????%42
C????%43
D????%44
E????%45
F????%46
G????%47
H????%48
I????%49
J????%4A
K????%4B
L????%4C
M???%4D
N????%4E
O???%4F
P????%50
Q???%51
R????%52
S????%53
T????%54
U????%55
V????%56
W???%57
X????%58
Y????%59
Z????%5A
[????%5B
\????%5C
]????%5D
^???%5E
_????%5F
`????%60
a????%61
b????%62
c????%63
d????%64
e????%65
f?????%66
g????%67
h????%68
i?????%69
j?????%6A
k????%6B
l?????%6C
m???%6D
n????%6E
o????%6F
p????%70
q????%71
r?????%72
s????%73
t?????%74
u????%75
v????%76
w???%77
x????%78
y????%79
z????%7A
{????%7B
|????%7C
}????%7D
~???%7E
%7F
€????%80
%81
?????%82
?????%83
?????%84
…???%85
?????%86
?????%87
?????%88
‰??%89
?????%8A
??????%8B
????%8C
%8D
?????%8E
%8F
%90
‘???%91
’???%92
“???%93
”???%94
?????%95
–????%96
—??%97
?????%98
????%99
?????%9A
??????%9B
????%9C
%9D
?????%9E
?????%9F
%A0
??????%A1
¢????%A2
£????%A3
%A4
¥????%A5
|????%A6
§????%A7
¨????%A8
????%A9
a????%AA
?????%AB
????%AC
ˉ????%AD
????%AE
ˉ????%AF
°????%B0
±???%B1
2????%B2
3????%B3
′?????%B4
μ????%B5
?????%B6
·?????%B7
??????%B8
1????%B9
o????%BA
?????%BB
????%BC
????%BD
????%BE
?????%BF
à????%C0
á????%C1
?????%C2
?????%C3
?????%C4
?????%C5
????%C6
?????%C7
è????%C8
é????%C9
ê????%CA
?????%CB
ì????%CC
í????%CD
?????%CE
?????%CF
D???%D0
?????%D1
ò???%D2
ó???%D3
????%D4
????%D5
????%D6
%D7
????%D8
ù????%D9
ú????%DA
?????%DB
ü????%DC
Y????%DD
T????%DE
?????%DF
à????%E0
á????%E1
a????%E2
?????%E3
?????%E4
?????%E5
????%E6
?????%E7
è????%E8
é????%E9
ê????%EA
?????%EB
ì?????%EC
í?????%ED
??????%EE
??????%EF
e????%F0
?????%F1
ò????%F2
ó????%F3
?????%F4
?????%F5
?????%F6
÷???%F7
?????%F8
ù????%F9
ú????%FA
?????%FB
ü????%FC
y????%FD
t????%FE
?????%FF