繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> urldecode 方法补遗。

urldecode 方法补遗。

2006-05-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:ASP 里面没有urldecode函数,好象ASPx里有吧,我不太清楚,但ASP里面还是用得很多。在网上查找了有别人写的urldecode函数,但是这个函数有错误,而且在一些方面写得比较难理解。而且有错误,当里面有生僻双字节文...
关键字:补遗 urldecode 方法

ASP 里面没有urldecode函数,好象ASPx里有吧,我不太清楚,但ASP里面还是用得很多。在网上查找了有别人写的urldecode函数,但是这个函数有错误,而且在一些方面写得比较难理解。而且有错误,当里面有生僻双字节文字时就会产生错误,如“乄”经urlencoder后为“%81W”,解码就不能成功。

其实双字节编码在这里只要把"W"也编成16进制ASC码就可以。

知识点:计算机里的cookie也是经过urlencode编码的,所以urldecode对破解cookie也很有用呵。

下面是源代码:

Function URLDecode(enStr)

dim deStr

dim c,i,v

deStr=""

for i=1 to len(enStr)

c=Mid(enStr,i,1)

if c="%" then

v=eval("&h"+Mid(enStr,i+1,2))

if v<128 then

deStr=deStr&chr(v)

i=i+2

else

if isvalidhex(mid(enstr,i,3)) then

if isvalidhex(mid(enstr,i+3,3)) then

v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))

deStr=deStr&chr(v)

i=i+5

else

v=eval("&h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))

deStr=deStr&chr(v)

i=i+3

end if

else

destr=destr&c

end if

end if

else

if c="+" then

deStr=deStr&" "

else

deStr=deStr&c

end if

end if

next

URLDecode=deStr

end function

function isvalidhex(str)

isvalidhex=true

str=ucase(str)

if len(str)3 then isvalidhex=false:exit function

if left(str,1)"%" then isvalidhex=false:exit function

c=mid(str,2,1)

if not (((c>="0") and (c="A") and (c="0") and (c="A") and (c<="Z"))) then isvalidhex=false:exit function

end function

你用此方法解码“%81W”看看,可以了。

当然,你还可以玩点小段,使之成为自己的一种字符串加密方式。

责任编辑:admin
相关文章