如何 Encode 和 Decode URL 地址?
ASP 的 Server 对象提供了一个 Server.Encode() 方法,但是却没有相应的 Server.Decode() 方法或者 Unencode() 方法。也许 MS认为这没必要。其实这样的方法非常有用,这里提供一种实现~包括 VBScript 和 JScript 代码。
VBscript
1<%
2Function URLDecode(str)
3 str = Replace(str, "+", " ")
4 For i = 1 To Len(str)
5 sT = Mid(str, i, 1)
6 If sT = "%" Then
7 If i+2 < Len(str) Then
8 sR = sR & Chr(CLng("&H" & Mid(str, i+1, 2)))
9 i = i+2
10 End If
11 Else
12 sR = sR & sT
13 End If
14 Next
15 URLDecode = sR
16End Function
17
18Function URLEncode(str)
19 URLEncode = Server.URLEncode(str)
20End Function
21
22str1 = "http://www.foo.com/blah.asp?foo=1 & 2 &g=0"
23str2 = URLEncode(str1)
24str3 = URLDecode(str2)
25Response.Write(str1 & "<br>" & str2 & "<br>" & str3)
26%>
2Function URLDecode(str)
3 str = Replace(str, "+", " ")
4 For i = 1 To Len(str)
5 sT = Mid(str, i, 1)
6 If sT = "%" Then
7 If i+2 < Len(str) Then
8 sR = sR & Chr(CLng("&H" & Mid(str, i+1, 2)))
9 i = i+2
10 End If
11 Else
12 sR = sR & sT
13 End If
14 Next
15 URLDecode = sR
16End Function
17
18Function URLEncode(str)
19 URLEncode = Server.URLEncode(str)
20End Function
21
22str1 = "http://www.foo.com/blah.asp?foo=1 & 2 &g=0"
23str2 = URLEncode(str1)
24str3 = URLDecode(str2)
25Response.Write(str1 & "<br>" & str2 & "<br>" & str3)
26%>
JScript
1<script language=JScript runat=server>
2function URLDecode(str)
3{
4 return unescape(str);
5}
6
7function URLEncode(str)
8{
9 str = escape(str);
10}
2function URLDecode(str)
3{
4 return unescape(str);
5}
6
7function URLEncode(str)
8{
9 str = escape(str);
10}