关于URL转义字符(URL编码)的问题

昨天我打算上网找找最近出了什么新书,询问了一个朋友后他给了我一个奇怪的地址: %31%32%36%2E%61%6D/hEeGv4,把这一串貌似跟URL网址不搭边的字符串复制到浏览器地址栏后打开,结果可以正常打开淘宝的页面,那么这一串看似不像URL的地址是怎么回事呢?

通过搜索,我知道在因特网上传送URL时,URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符号等等,所以要对URL进行转换。这个过程就叫做URL编码,或者叫URL转义,实质上就是将包含非ASCII字符的URL转换为有效的ASCII字符格式。

在进行URL编码时,每一个非ASCII字符都被替换为“%hh”格式,其中hh为两位十六进制数,它对应于该字符在ISO-8859-1字符集里的编码值。比如“中国”这两个汉字出现在URL,就要将他们转为“%D6%D0%B9%FA”,由于一个汉字需要两个字节,所以“中国”被替换成了四个ASCII字符。

知道了URL转义字符是怎么回事,就可以了解上面那个地址了。我们对“%31%32%36%2E%61%6D/hEeGv4”进行反编码,得到“126.am/hEeGv4”,可以发现这是一个省略了“http://”的网址,并且对超长的淘宝链接进行了网址缩短,把它复制进浏览器地址栏,浏览器会识别出这个地址,并自动加上“http://”,所以我们就可以正常打开了。

我反编码URL时使用了这个网页:http://www.nengcha.com/code/urlDecode.asp。

另附上ASCII字符与URL编码的对照表。

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


转载自:http://www.gaohaipeng.com/678.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值