• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP的URLDecode函数URLEncode解码函数
    下面的代码是从kesion系统扒下的,确实不错,支持utf8格式。
    复制代码 代码如下:

    '================================================
    '函数名:URLDecode
    '作 用:URL解码
    '================================================
    Function URLDecode(ByVal urlcode)
    Dim start,final,length,char,i,butf8,pass
    Dim leftstr,rightstr,finalstr
    Dim b0,b1,bx,blength,position,u,utf8
    On Error Resume Next

    b0 = Array(192,224,240,248,252,254)
    urlcode = Replace(urlcode,"+"," ")
    pass = 0
    utf8 = -1

    length = Len(urlcode) : start = InStr(urlcode,"%") : final = InStrRev(urlcode,"%")
    If start = 0 Or length 3 Then URLDecode = urlcode : Exit Function
    leftstr = Left(urlcode,start - 1) : rightstr = Right(urlcode,length - 2 - final)

    For i = start To final
    char = Mid(urlcode,i,1)
    If char = "%" Then
    bx = URLDecode_Hex(Mid(urlcode,i + 1,2))
    If bx > 31 And bx 128 Then
    i = i + 2
    finalstr = finalstr ChrW(bx)
    ElseIf bx > 127 Then
    i = i + 2
    If utf8 0 Then
    butf8 = 1 : blength = -1 : b1 = bx
    For position = 4 To 0 Step -1
    If b1 >= b0(position) And b1 b0(position + 1) Then
    blength = position
    Exit For
    End If
    Next
    If blength > -1 Then
    For position = 0 To blength
    b1 = URLDecode_Hex(Mid(urlcode,i + position * 3 + 2,2))
    If b1 128 Or b1 > 191 Then butf8 = 0 : Exit For
    Next
    Else
    butf8 = 0
    End If
    If butf8 = 1 And blength = 0 Then butf8 = -2
    If butf8 > -1 And utf8 = -2 Then i = start - 1 : finalstr = "" : pass = 1
    utf8 = butf8
    End If
    If pass = 0 Then
    If utf8 = 1 Then
    b1 = bx : u = 0 : blength = -1
    For position = 4 To 0 Step -1
    If b1 >= b0(position) And b1 b0(position + 1) Then
    blength = position
    b1 = (b1 xOr b0(position)) * 64 ^ (position + 1)
    Exit For
    End If
    Next
    If blength > -1 Then
    For position = 0 To blength
    bx = URLDecode_Hex(Mid(urlcode,i + 2,2)) : i = i + 3
    If bx 128 Or bx > 191 Then u = 0 : Exit For
    u = u + (bx And 63) * 64 ^ (blength - position)
    Next
    If u > 0 Then finalstr = finalstr ChrW(b1 + u)
    End If
    Else
    b1 = bx * h100 : u = 0
    bx = URLDecode_Hex(Mid(urlcode,i + 2,2))
    If bx > 0 Then
    u = b1 + bx
    i = i + 3
    Else
    If Left(urlcode,1) = "%" Then
    u = b1 + Asc(Mid(urlcode,i + 3,1))
    i = i + 2
    Else
    u = b1 + Asc(Mid(urlcode,i + 1,1))
    i = i + 1
    End If
    End If
    finalstr = finalstr Chr(u)
    End If
    Else
    pass = 0
    End If
    End If
    Else
    finalstr = finalstr char
    End If
    Next
    URLDecode = leftstr finalstr rightstr
    End Function

    Function URLDecode_Hex(ByVal h)
    On Error Resume Next
    h = "h" Trim(h) : URLDecode_Hex = -1
    If Len(h) > 4 Then Exit Function
    If isNumeric(h) Then URLDecode_Hex = cInt(h)
    End Function
    您可能感兴趣的文章:
    • ASP中实现的URLEncode、URLDecode自定义函数
    • 用ASP应用程序实现自己的UrlDeCode
    • ASP中只有UrlEncode,没有Urldecode问题的解决方法?
    上一篇:asp空间判断jmail组件是否安装或支持的代码
    下一篇:ASP中使用Set ors=oConn.Execute()时获取记录数的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP的URLDecode函数URLEncode解码函数 ASP,的,URLDecode,函数,URLEncode,