ASP中只有UrlEncode,没有Urldecode问题的解决方法?
导读:收集整理的这篇文章主要介绍了ASP中只有UrlEncode,没有Urldecode问题的解决方法?,觉得挺不错的,现在分享给大家,也给大家做个参考。 在ASP中传递参数时有一个很有用的系...
收集整理的这篇文章主要介绍了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 v128 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使用没有问题。
您可能感兴趣的文章:- ASP中实现的URLEncode、URLDecode自定义函数
- ASP的URLDecode函数URLEncode解码函数
- 用ASP应用程序实现自己的UrlDeCode
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ASP中只有UrlEncode,没有Urldecode问题的解决方法?
本文地址: https://pptw.com/jishu/604332.html
