urldecode 方法补遗。

原创 2004年01月05日 11:59:00

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

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

中庐机       段永义。

ddyyyy@163.net        2004-1-4.

Web容器自动对HTTP请求中参数进行URLDecode处理

这篇文章转载自 : Web容器自动对HTTP请求中参数进行URLDecode处理如题,在Java中也许很多人都没有注意到当我们发送一个http请求时,如果附带的参数被URLEncode之后,到达web...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2016年01月06日 11:25
  • 4375

遗传算法求解给定方程最值

一、题目要求   将一段用C语言实现的求解下列方程:         f(x1,x2,x3)=x1^2-x1*x2+x3      在给定区间的最大值的遗传算法程序改成C#程序。 要求: (1)、数...
  • xj2419174554
  • xj2419174554
  • 2014年05月25日 23:49
  • 2198

urlencode()与urldecode()函数字符编码原理详解

中文字符编码研究系列第五期,详解 urlencode()与urldecode()函数字符编码原理,两个函数分别用于编码 URL 字符串和解码已编码的 URL 字符串,实现对中文字符的编码 ...
  • linshichen
  • linshichen
  • 2016年04月05日 15:37
  • 4065

shell 下 urlencode/urldecode 编码/解码的几种方法

1、先弄清楚为什么要 urlencode? http://www.genome.iastate.edu/community/angenmap/URLEncoding.html URL Encoding...
  • carlostyq
  • carlostyq
  • 2012年08月31日 11:54
  • 9727

PB 进制转换 url编码 urlencode urldecode 数组排序

  • 2011年07月09日 10:46
  • 11KB
  • 下载

urlencode urldecode实现

  • 2013年03月21日 16:38
  • 62KB
  • 下载

python 实现 urlencode 与 urldecode (中文及特殊字符编解码)

这里说的urlencode非python自带的urlencode是
  • qrsssh
  • qrsssh
  • 2014年10月09日 19:42
  • 749

php中urldecode和urlencode的具体使用

1、urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符...
  • u011323949
  • u011323949
  • 2017年07月23日 16:21
  • 118

urldecode()二次解码引发注入

PHP中常用过滤函数如addslashes()、mysql_real_escape_string()、mysql_escape_string()或者使用魔术引号GPC开关来防止注入,原理都是给单引号(...
  • qlxmy
  • qlxmy
  • 2017年02月16日 10:54
  • 1227

urlencode AND urldecode

URLEncode的作用到底是什么呢?什么情况下非要用URLEncode方法呢?
  • dingxy
  • dingxy
  • 2011年03月08日 16:25
  • 613
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:urldecode 方法补遗。
举报原因:
原因补充:

(最多只允许输入30个字)