紫影基地

 找回密码
 立即注册
查看: 113|回复: 0

asp的URLDecode函数

[复制链接]
阅读字号:

2002

主题

2117

帖子

21万

积分

超级版主

Rank: 8Rank: 8

积分
210303
发表于 2024-4-21 17:19:26 | 显示全部楼层 |阅读模式

  1.   Function URLDecode(enStr)
  2.   dim deStr
  3.   dim c,i,v
  4.   deStr=""
  5.   for i=1 to len(enStr)
  6.   c=Mid(enStr,i,1)
  7.   if c="%" then
  8.   v=eval("&h"+Mid(enStr,i+1,2))
  9.   if v<128 then
  10.   deStr=deStr&chr(v)
  11.   i=i+2
  12.   else
  13.   if isvalidhex(mid(enstr,i,3)) then
  14.   if isvalidhex(mid(enstr,i+3,3)) then
  15.   v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
  16.   deStr=deStr&chr(v)
  17.   i=i+5
  18.   else
  19.   v=eval("&h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
  20.   deStr=deStr&chr(v)
  21.   i=i+3
  22.   end if
  23.   else
  24.   destr=destr&c
  25.   end if
  26.   end if
  27.   else
  28.   if c="+" then
  29.   deStr=deStr&" "
  30.   else
  31.   deStr=deStr&c
  32.   end if
  33.   end if
  34.   next
  35.   URLDecode=deStr
  36.   end function

  37.   function isvalidhex(str)
  38.   isvalidhex=true
  39.   str=ucase(str)
  40.   if len(str)<>3 then isvalidhex=false:exit function
  41.   if left(str,1)<>"%" then isvalidhex=false:exit function
  42.   c=mid(str,2,1)
  43.   if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function
  44.   c=mid(str,3,1)
  45.   if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function
  46.   end function
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫影基地

GMT+8, 2025-1-12 12:07 , Processed in 0.083095 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表