当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP学习:urldecode 方法补遗

ASP
制作我们自己的Ebay(拍卖系统)(3)
制作我们自己的Ebay(拍卖系统)(4)
制作我们自己的Ebay(拍卖系统)(5)
制作我们自己的Ebay(拍卖系统)(6)
制作我们自己的Ebay(拍卖系统)(8)
制作我们自己的Ebay(拍卖系统)(9)
制作我们自己的Ebay(拍卖系统)(7)
作一个可以直接和浏览器进行交互的组件
用ASP+实现一个简单的计算器(适合入门者)
用多种方法制作WEB页面的计数器
asp+的论坛列表程序---代码部分
asp+的论坛列表程序---页面部分
asp+版本简单的留言板的制作(一)
asp+版本简单的留言板的制作(二)
asp+版本简单的留言板的制作(三)
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(一)
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(二)
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(三)
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(四)
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(五)

ASP学习:urldecode 方法补遗


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 107 ::
收藏到网摘: n/a

 

  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<="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”看看,可以了。

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