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
本文介绍了URL编码的基本概念,解释了为何需要进行URL编码及其工作原理。文章详细说明了非ASCII字符如何转换为有效的ASCII字符格式,并提供了ASCII字符与URL编码之间的对照表。
2236

被折叠的 条评论
为什么被折叠?



