海南世纪云图网络科技有限公司
咨询热线:400-822-8458 客户服务:0898-32183600

ASP的Escape和UnEscape函数

发表于:2011-05-16 00:00:00来源:人气:3443

昨天一个客户的网站改点东西.本来很简单的啦.没想在幻灯片那儿卡死了.一般来说幻灯片换个样式百度一下一大堆.不过换上去了毛病却出来了.先是不正常显示.然后接着就是点不了链接.郁闷了好久.后来问我们技术部主管.嘿嘿.一次性解决问题.

先看下.原本的连接是这样:Abcde.asp?mmid=025&lw=025&m2=1&t=245;我把这个链接直接放到地址栏里打开了.再返回去点幻灯片的.可以了.不过只打开了Abcde.asp?mmid=025.我还以为幻灯不支持&这个符号.所以折腾了好久.解决这个其它很简单.转码一下就OK了.

Function vbsEscape(str)
    dim i,s,c,a
    s=""
    For i=1 to Len(str)
        c=Mid(str,i,1)
        a=ASCW(c)
        If (a>=48 and a<=57) or (a>=65 and a<=90) or (a>=97 and a<=122) Then
            s = s & c
        ElseIf InStr("@*_+-./",c)>0 Then
            s = s & c
        ElseIf a>0 and a<16 Then
            s = s & "%0" & Hex(a)
        ElseIf a>=16 and a<256 Then
            s = s & "%" & Hex(a)
        Else
            s = s & "%u" & Hex(a)
        End If
    Next
    vbsEscape = s
End Function

Function vbsUnEscape(str)
    dim i,s,c
    s=""
    For i=1 to Len(str)
        c=Mid(str,i,1)
        If Mid(str,i,2)="%u" and i<=Len(str)-5 Then
            If IsNumeric("&H" & Mid(str,i+2,4)) Then
                s = s & CHRW(CInt("&H" & Mid(str,i+2,4)))
                i = i+5
            Else
                s = s & c
            End If
        ElseIf c="%" and i<=Len(str)-2 Then
            If IsNumeric("&H" & Mid(str,i+1,2)) Then
                s = s & CHRW(CInt("&H" & Mid(str,i+1,2)))
                i = i+2
            Else
                s = s & c
            End If
        Else
            s = s & c
        End If
    Next
    vbsUnEscape = s
End Function

然后再调用就OK了

文章整理: 世纪云图  https://www.yuntop.cc/

以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

版权申明:本站文章部份来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站部份转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。

微信
网站建设
软件业务
网络营销
400电话