网页的url编码怎么用vb来实现?

网页的url编码怎么用vb来实现?,第1张

我发你编码和解码的vb实现代码:

Private Function URLEncode(ByVal strURL As String) As String

    Dim i As Long

    Dim tempStr As String

    For i = 1 To Len(strURL)

        If InStr("-,.0123456789", Mid(strURL, i, 1)) Then

            URLEncode = URLEncode & Mid(strURL, i, 1)

        Else

            If Asc(Mid(strURL, i, 1)) < 0 Then

                tempStr = "%" & Right(CStr(Hex(Asc(Mid(strURL, i, 1)))), 2)

                tempStr = "%" & Left(CStr(Hex(Asc(Mid(strURL, i, 1)))), Len(CStr(Hex(Asc(Mid(strURL, i, 1))))) - 2) & tempStr

                URLEncode = URLEncode & tempStr

            ElseIf (Asc(Mid(strURL, i, 1)) >= 65 And Asc(Mid(strURL, i, 1)) <= 90) Or (Asc(Mid(strURL, i, 1)) >= 97 And Asc(Mid(strURL, i, 1)) <= 122) Then

                URLEncode = URLEncode & Mid(strURL, i, 1)

            Else

                URLEncode = URLEncode & "%" & Hex(Asc(Mid(strURL, i, 1)))

            End If

        End If

    Next

End Function

                                                                    

Public Function URLDecode(strURL)

    Dim I

    If InStr(strURL, "%") = 0 Then URLDecode = strURL: Exit Function

    For I = 1 To Len(strURL)

        If Mid(strURL, I, 1) = "%" Then

            If eval("&H" & Mid(strURL, I + 1, 2)) > 127 Then

                URLDecode = URLDecode & Chr(eval("&H" & Mid(strURL, I + 1, 2) & Mid(strURL, I + 4, 2)))

                I = I + 5

            Else

                URLDecode = URLDecode & Chr(eval("&H" & Mid(strURL, I + 1, 2)))

                I = I + 2

            End If

        Else

            URLDecode = URLDecode & Mid(strURL, I, 1)

        End If

    Next

End Function

Private Sub Command1_Click()

    Dim WshShell As Object

    Set WshShell = CreateObject("Wscript.Shell")

    Dim strDeskTop As String

    strDeskTop = WshShell.SpecialFolders("Desktop")

    Dim UrlLink As Object

    Set UrlLink = WshShell.CreateShortcut(strDeskTop & "\百度.url")

    UrlLink.TargetPath = "

 

    UrlLink.Save

    Set UrlLink = Nothing

    Set WshShell = Nothing

End Sub

'编码函数

Public Function URLEncode(ByRef strURL As String) As String 

Dim I As Long 

Dim tempStr As String 

For I = 1 To Len(strURL) 

If Asc(Mid(strURL, I, 1)) < 0 Then 

tempStr = "%" & Right(CStr(Hex(Asc(Mid(strURL, I, 1)))), 2) 

tempStr = "%" & Left(CStr(Hex(Asc(Mid(strURL, I, 1)))), Len(CStr(Hex(Asc(Mid(strURL, I, 1))))) - 2) & tempStr 

URLEncode = URLEncode & tempStr 

ElseIf

 (Asc(Mid(strURL, I, 1)) >= 65 And Asc(Mid(strURL, I, 1)) <= 90) 

Or (Asc(Mid(strURL, I, 1)) >= 97 And Asc(Mid(strURL, I, 1)) <= 

122) Then 

URLEncode = URLEncode & Mid(strURL, I, 1) 

Else 

URLEncode = URLEncode & "%" & Hex(Asc(Mid(strURL, I, 1))) 

End If 

Next 

End Function 

'解码函数

Public Function URLDecode(ByRef strURL As String) As String 

Dim I As Long 

If InStr(strURL, "%") = 0 Then URLDecode = strURL: Exit Function 

For I = 1 To Len(strURL) 

If Mid(strURL, I, 1) = "%" Then 

If Val("&H" & Mid(strURL, I + 1, 2)) > 127 Then 

URLDecode = URLDecode & Chr(Val("&H" & Mid(strURL, I + 1, 2) & Mid(strURL, I + 4, 2))) 

I = I + 5 

Else 

URLDecode = URLDecode & Chr(Val("&H" & Mid(strURL, I + 1, 2))) 

I = I + 2 

End If 

Else 

URLDecode = URLDecode & Mid(strURL, I, 1) 

End If 

Next 

End Function


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11626873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存