URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符等等,所以要对URL进行转换。这个过程就叫做URL编码,或者叫URL转义,实质上就是将包含非ASCII字符的URL转换为有效的ASCII字符格式。
在进行URL编码时,每一个非ASCII字符都被替换为“%hh”格式,其中hh为两位十六进制数,它对应于该字符在ISO-8859-1字符集里的编码值。比如“中国”这两个汉字出现在URL,就要将他们转为“%D6%D0%B9%FA”,由于一个汉字需要两个字节,所以“中国”被替换成了四个ASCII字符。
简单地说,
ASCII码表中和URL编码最相关的部分是:
字符特殊字符的含义 URL编码
# 用来标志特定的文档位置 %23
% 对特殊字符进行编码 %25
& 分隔不同的变量值对 %26
+ 在变量值中表示空格 %2B
/ 表示目录路径 %2F
= 用来连接键和值 %3D
? 表示查询字符串的开始 %3F
public static void main(String[] args) throws UnsupportedEncodingException{
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);
}
另附上ASCII字符与URL编码的对照表。
ASCII值 | URL编码 |
---|---|
æ | 0 |
0.01 | |
0.02 | |
0.03 | |
0.04 | |
0.05 | |
0.06 | |
0.07 | |
backspace | 0.08 |
tab | 0.09 |
linefeed | %0a |
%0b | |
%0c | |
c return | %0d |
%0e | |
%0f | |
0.1 | |
0.11 | |
0.12 | |
0.13 | |
0.14 | |
0.15 | |
0.16 | |
0.17 | |
0.18 | |
0.19 | |
%1a | |
%1b | |
%1c | |
%1d | |
%1e | |
%1f | |
space | 0.2 |
! | 0.21 |
“ | 0.22 |
# | 0.23 |
$ | 0.24 |
% | 0.25 |
& | 0.26 |
‘ | 0.27 |
( | 0.28 |
) | 0.29 |
* | %2a |
+ | %2b |
, | %2c |
- | %2d |
. | %2e |
/ | %2f |
0 | 0.3 |
1 | 0.31 |
2 | 0.32 |
3 | 0.33 |
4 | 0.34 |
5 | 0.35 |
6 | 0.36 |
7 | 0.37 |
8 | 0.38 |
9 | 0.39 |
: | %3a |
; | %3b |
< | %3c |
= | %3d |
> | %3e |
? | %3f |
@ | 0.4 |
A | 0.41 |
B | 0.42 |
C | 0.43 |
D | 0.44 |
E | 0.45 |
F | 0.46 |
G | 0.47 |
H | 0.48 |
I | 0.49 |
J | %4a |
K | %4b |
L | %4c |
M | %4d |
N | %4e |
O | %4f |
P | 0.5 |
Q | 0.51 |
R | 0.52 |
S | 0.53 |
T | 0.54 |
U | 0.55 |
V | 0.56 |
W | 0.57 |
X | 0.58 |
Y | 0.59 |
Z | %5a |
[ | %5b |
|%5c | |
] | %5d |
^ | %5e |
_ | %5f |
` | 0.6 |
a | 0.61 |
b | 0.62 |
c | 0.63 |
d | 0.64 |
e | 0.65 |
f | 0.66 |
g | 0.67 |
h | 0.68 |
i | 0.69 |
j | %6a |
k | %6b |
l | %6c |
m | %6d |
n | %6e |
o | %6f |
p | 0.7 |
q | 0.71 |
r | 0.72 |
s | 0.73 |
t | 0.74 |
u | 0.75 |
v | 0.76 |
w | 0.77 |
x | 0.78 |
y | 0.79 |
z | %7a |
{ | %7b |
} | %7d |
~ | %7e |
%7f | |
€ | 0.8 |
0.81 | |
‚ | 0.82 |
ƒ | 0.83 |
„ | 0.84 |
… | 0.85 |
† | 0.86 |
‡ | 0.87 |
ˆ | 0.88 |
‰ | 0.89 |
Š | %8a |
‹ | %8b |
Œ | %8c |
%8d | |
? | %8e |
%8f | |
0.9 | |
‘ | 0.91 |
’ | 0.92 |
“ | 0.93 |
” | 0.94 |
• | 0.95 |
– | 0.96 |
— | 0.97 |
˜ | 0.98 |
™ | 0.99 |
š | %9a |
› | %9b |
œ | %9c |
%9d | |
? | %9e |
Ÿ | %9f |
%a0 | |
¡ | %a1 |
¢ | %a2 |
£ | %a3 |
%a4 | |
À | %c0 |
Á | %c1 |
 | %c2 |
à | %c3 |
Ä | %c4 |
Å | %c5 |
Æ | %c6 |
Ç | %c7 |
È | %c8 |
É | %c9 |
Ê | %ca |
Ë | %cb |
Ì | %cc |
Í | %cd |
Î | %ce |
Ï | %cf |
Ð | %d0 |
Ñ | %d1 |
Ò | %d2 |
Ó | %d3 |
Ô | %d4 |
ð | %f0 |
ñ | %f1 |
ò | %f2 |
ó | %f3 |
ô | %f4 |
õ | %f5 |
ö | %f6 |
÷ | %f7 |
ø | %f8 |
ù | %f9 |
ú | %fa |
û | %fb |
ü | %fc |
ý | %fd |
þ | %fe |
ÿ | %ff |
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
ª %AA
« %AB
¬ %AC
¯ %AD
® %AE
¯ %AF
° %B0
± %B1
² %B2
³ %B3
´ %B4
µ %B5
¶ %B6
· %B7
¸ %B8
¹ %B9
º %BA
» %BB
¼ %BC
½ %BD
¾ %BE
¿ %BF
À %C0
Á %C1
 %C2
à %C3
Ä %C4
Å %C5
Æ %C6
Ç %C7
È %C8
É %C9
Ê %CA
Ë %CB
Ì %CC
Í %CD
Î %CE
Ï %CF
Ð %D0
Ñ %D1
Ò %D2
Ó %D3
Ô %D4
Õ %D5
Ö %D6
%D7
Ø %D8
Ù %D9
Ú %DA
Û %DB
Ü %DC
Ý %DD
Þ %DE
ß %DF
à %E0
á %E1
â %E2
ã %E3
ä %E4
å %E5
æ %E6
ç %E7
è %E8
é %E9
ê %EA
ë %EB
ì %EC
í %ED
î %EE
ï %EF
ð %F0
ñ %F1
ò %F2
ó %F3
ô %F4
õ %F5
ö %F6
÷ %F7
ø %F8
ù %F9
ú %FA
û %FB
ü %FC
ý %FD
þ %FE
ÿ %FF