主页 > 知识库 > ASP中只有UrlEncode,没有Urldecode问题的解决方法?

ASP中只有UrlEncode,没有Urldecode问题的解决方法?

热门标签:Mysql连接数设置 服务器配置 电子围栏 Linux服务器 银行业务 阿里云 科大讯飞语音识别系统 团购网站

在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 v128 then 
       deStr=deStrchr(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=deStrchr(v) 
           i=i+5 
         else 
           v=eval("h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1))))) 
           deStr=deStrchr(v) 
           i=i+3 
         end if 
       else 
         destr=destrc 
       end if 
     end if 
   else 
     if c="+" then 
       deStr=deStr" " 
     else 
       deStr=deStrc 
     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使用没有问题。

您可能感兴趣的文章:
  • ASP中实现的URLEncode、URLDecode自定义函数
  • ASP的URLDecode函数URLEncode解码函数
  • 用ASP应用程序实现自己的UrlDeCode

标签:枣庄 广元 江苏 大理 衢州 衡水 蚌埠 萍乡

巨人网络通讯声明:本文标题《ASP中只有UrlEncode,没有Urldecode问题的解决方法?》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266