乐码库:一个极速、放心、纯净的下载站! 更新: 资源发布
  • 您的位置:首页 > 技术文档 > ASP编程 > ASP中只有UrlEncode,没有Urldecode问题的解决方法?
  • 收藏本页
      ASP中只有UrlEncode,没有Urldecode问题的解决方法?
      发布时间:2016-11-03 19:01:08 关键词: ASP,Urldecode
      内容简介:这篇文章主要介绍了ASP中只有UrlEncode,没有Urldecode问题的解决方法? ,需要的朋友可以参考下

    在ASP中传递参数时有一个很有用的系统函数Server.UrlEncode,可以将一些非字母数字的特殊符号转换成标准URL编码(其实就是16进制ASC码),这样就解决了参数传递问题,然后我以为也提供了Server.UrlDecode,但使用后却发现程序报错,原来系统并没有提供这个我想象中的解码函数。怎幺办,自己动手吧。

    UrlEncode的原理其实很简单,就是将特殊字符转换成16进制ASC码值,那么译码函数就只要将16进制ASC转回对应的字符就OK了。

    Function URLDecode(enStr)          'URL解碼函數 
     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

    经测试gb312格式的asp使用没有问题。

      最新更新
      热门排行榜