VB URL编码函数

小歆12年前软件源码03977
VB UTF-8 URL编码函数:
  1. Public Function UTF8_URLEncoding(szInput)
  2.     Dim wch, uch, szRet
  3.     Dim x
  4.     Dim nAsc, nAsc2, nAsc3
  5.     If szInput = "" Then
  6.         UTF8_URLEncoding = szInput
  7.         Exit Function
  8.     End If
  9.     For x = 1 To Len(szInput)
  10.         wch = Mid(szInput, x, 1)
  11.         nAsc = AscW(wch)
  12.        
  13.         If nAsc < 0 Then nAsc = nAsc + 65536
  14.        
  15.         If (nAsc And &HFF80) = 0 Then
  16.             szRet = szRet & wch
  17.         Else
  18.             If (nAsc And &HF000) = 0 Then
  19.                 uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
  20.                 szRet = szRet & uch
  21.             Else
  22.                 uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _
  23.                 Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _
  24.                 Hex(nAsc And &H3F Or &H80)
  25.                 szRet = szRet & uch
  26.             End If
  27.         End If
  28.     Next
  29.     UTF8_URLEncoding = szRet
  30. End Function
VB GB2312 URL编码函数:
  1.    Public Function URLEncode(ByRef strURL)
  2.        Dim I
  3.        Dim tempStr
  4.        For I = 1 To Len(strURL)
  5.            If InStr("-,.0123456789/", Mid(strURL, I, 1)) Then
  6.                URLEncode = URLEncode & Mid(strURL, I, 1)
  7.            Else
  8.                If Asc(Mid(strURL, I, 1)) < 0 Then
  9.                    tempStr = "%" & Right(CStr(Hex(Asc(Mid(strURL, I, 1)))), 2)
  10.                    tempStr = "%" & Left(CStr(Hex(Asc(Mid(strURL, I, 1)))), Len(CStr(Hex(Asc(Mid(strURL, I, 1))))) - 2) & tempStr
  11.                    URLEncode = URLEncode & tempStr
  12.                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
  13.                    URLEncode = URLEncode & Mid(strURL, I, 1)
  14.                Else
  15.                    URLEncode = URLEncode & "%" & Hex(Asc(Mid(strURL, I, 1)))
  16.                End If
  17.            End If
  18.        Next
  19.    End Function

相关文章

开启Win7开始菜单右边的快速启动栏

1.在任务栏上点击鼠标右键 -> 工具栏 -> 新建工具栏。 2.在文件夹里输入这个路径,然后按Enter: %userprofile%\AppData\Roaming\Microso...

PCB设计的几点经验总结

第一:前期准备。这包括准备元件库和原理图。“工欲善其事,必先利其器”,要做出一块好的板子,除了要设计好原理之外,还要画得好。在进行PCB设计之前,首先要准备好原理图SCH的元件库和PCB的元件...

C51单片机及C语言知识点必备秘籍

C51单片机及C语言知识点必备秘籍

C51单片机及C语言知识点必备秘籍2 `: }( _# B# m% p+ _6 t, B* k 5 W' z" b2 T. Z: s' m! Q" T ; s0 w2 E& a&nbs...

VS 2017 Git failed with a fatal error的解决方案

VS 2017 Git failed with a fatal error的解决方案

问题现象这几天用刚装的VS2017写了个程序,在提交推送到Github过程中提示了“Git failed with a fatal error”错误,输出窗口的提示如下图: 解决方案经过一番折腾...

VB中LostFocus、GotFocus事件的改进

---- VB中有一个LostFocus事件和一个GotFocus事件,看名字似乎是当当前窗口失去焦点或得到焦点时触发的事件。但在实际应用时却发现当这个窗口和Win...

C语言 # 与 ## 的用法

一、一般用法 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. 用法: #include<cstdio>...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。