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

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

时间: 2024-10-27 14:56:07

ASP学习:urldecode 方法补遗的相关文章

ASP学习:urldecode方法补遗

ASP里面没有urldecode函数,好象aspx里有吧,我不太清楚,但asp里面还是用得很多.在网上查找了有别人写的urldecode函数,但是这个函数有错误,而且在一些方面写得比较难理解.而且有错误,当里面有生僻双字节文字时就会产生错误,如"乄"经urlencoder后为"%81W",解码就不能成功. 其实双字节编码在这里只要把"W"也编成16进制ASC码就可以. 知识点:计算机里的cookie也是经过urlencode编码的,所以urlde

urldecode 方法补遗。

decode asp 里面没有urldecode函数,好象aspx里有吧,我不太清楚,但asp里面还是用得很多.在网上查找了有别人写的urldecode函数,但是这个函数有错误,而且在一些方面写得比较难理解.而且有错误,当里面有生僻双字节文字时就会产生错误,如"乄"经urlencoder后为"%81W",解码就不能成功. 其实双字节编码在这里只要把"W"也编成16进制ASC码就可以. 知识点:计算机里的cookie也是经过urlencode编码的

自创]JCreator安装学习使用方法

自创]JCreator安装学习使用方法 先到http://www.onlinedown.net/soft/11536.htm下载Java 2 SDK Standard Edition 1.4.2 然后再到http://www.onlinedown.net/soft/15163.htm下载JCreator Pro 3.50.010 安装Java 2 SDK Standard Edition 1.4.2 配置环境变量(以XP版本为主):右键点击我的电脑->高级->环境变量,在系统变量里面进行3个变

ASP包含文件方法详解

详解 ASP包含文件方法详解 SSI 指令为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法.ASP 只使用这一机制的 #include 指令.要在 .asp 文件中插入一个文件,使用下面的语法: <!--#include virtual | file ="filename"--> virtual 和 file 关键字指示用来包含该文件的路径的类型,filename 是您想包含的文件的路径和名称. 被包含文件不要求专门的文件扩展名:但是,为被包含文件

一份ASP学习笔记(连载)

笔记 ASP学习笔记(一) 1. 突出显示文字 <em>要显示的文字</em>2. 根据用户选择,做出相应的反应(在客户端实现) SELECT CASE Document.Form1.card.options(selectedIndex).Text Case "value1" Option1 Case "value2" Option2 ...... END SELECT3. VBScript 的 Sub函数不返回值 Function 函数将返

asp常用数据库连接方法和技巧

技巧|数据|数据库|数据库连接 asp常用数据库连接方法和技巧转贴:snow 日期:2005-02-28 人气:19 购虚拟主机送U盘送鼠标送30G硬盘---企商在线老牌虚拟主机商 <% dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") set conn=server.createobject("adodb.connection") conn.open "driver={microsoft ac

《认知设计:提升学习体验的艺术》——学习者学习的方法

学习者学习的方法 那么,你如何了解你的学习者呢?这里有几本旨在分析该主题的优秀教学设计书籍(艾利森·罗赛特的<First Things Fast>),并可从用户体验领域学习到很多如何研究"用户"(学习者)的方法. 我并没有打算在这一方面进行更深入的介绍,我认为优秀的学习者分析方法很重要,这里有几种主要的方法: 与学习者进行交流 以学习者为中心 与学习者一起进行尝试

ASP技术Flush方法

ASP技术Flush方法 Flush方法发送缓冲立即HTML输出. 注意:如果response.Buffer是虚假的,这种方法将导致运行时错误. 语法 Response.Flush 好了下面我们来看看人实例吧. <% Response.Buffer=true %> <html> <body> <p>我写一些文字,但我会控制时, 文本将被发送到浏览器. <p> <p>文字不是尚未发出.我认为它回来了! "<p> &

免费空间500MB asp学习型个人主页空间免费申请

免费空间500MB asp学习型个人主页空间免费申请 型号:免费ASP主机500M(mf01) 现价:999元/年 原价:999元/年 内容:500M WEB空间 支持Asp+Access,支持同时连接数50个,Windows sever 2003操作系统,功能强大的控制面板,有效地降低用户主机管理成本,7×24小时在线服务支持/定时备份服务. 为了防止一个客户申请很多,浪费大家的资源,购买时请点"试用365天",这样我门就可以免费开通了! 申请地址:http://www.9411.o