|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
asp 里面没有urldecode函数,好象aspx里有吧,我不太清晰,但asp里面还是用得很多。在网上查找了有别人写的urldecode函数,但是这个函数有错误,而且在一些方面写得比较难理解。而且有错误,当里面有生僻双字节文字时就会产生错误,如“?W”经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<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function c=mid(str,3,1) if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function end function 你用此方式解码“%81W”看看,可以了。 当然,你还可以玩点小段,使之成为自己的一种字符串加密方法。 返回类别: 教程 上一教程: 在ASP中用集合成批操作数据库 下一教程: 简朴ASP论坛DIY 您可以阅读与"URLDECODE 方式补遗"相关的教程: · ASP学习:URLDECODE 方式补遗 · HTTP方法上载文件的ASP程序实例 · 用ADODB.STREAM将以二进制方法保存在数据库中的文件保存到硬盘 · ASP中存储过程调用的两种方法及比较 · 用WEB(ASP)方法实现SQL SERVER 数据库的备份和恢复 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |