挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
游戏交易就上寄售网-专注稳定-诚信赢天下玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击
→入驻S9企业发卡网各种全黑号辅助群:475351077 ██【我要租此广告位】██.
.. .
查看: 3435|回复: 0
打印 上一主题 下一主题

[VB例程源码] VB 网址链接中的编码函数 GBK及UTF-8 编码解码

[复制链接]
4中级会员
400/600

400

积分

120

主题

8

听众
已帮网友解决0 个问题
好评
0
贡献
280
海币
1422
交易币
0
跳转到指定楼层
楼主
发表于 2017-6-2 20:17:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


  1. VB 网址链接中的编码函数      编码解码GBK及UTF-8

  2. 'UTF-8 URL编码
  3. Public Function UTF8_URLEncoding(szInput)
  4.     Dim wch, uch, szRet
  5.     Dim x
  6.     Dim nAsc, nAsc2, nAsc3
  7.     If szInput = "" Then
  8.         UTF8_URLEncoding = szInput
  9.         Exit Function
  10.     End If
  11.     For x = 1 To Len(szInput)
  12.         wch = Mid(szInput, x, 1)
  13.         nAsc = AscW(wch)
  14.       
  15.         If nAsc < 0 Then nAsc = nAsc + 65536
  16.       
  17.         If (nAsc And &HFF80) = 0 Then
  18.             szRet = szRet & wch
  19.         Else
  20.             If (nAsc And &HF000) = 0 Then
  21.                 uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
  22.                 szRet = szRet & uch
  23.             Else
  24.                 uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _
  25.                 Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _
  26.                 Hex(nAsc And &H3F Or &H80)
  27.                 szRet = szRet & uch
  28.             End If
  29.         End If
  30.     Next
  31.     UTF8_URLEncoding = szRet
  32. End Function


  33. 'UTF-8 URL解码
  34. Public Function UTF8_UrlDecode(ByVal URL As String)
  35.     Dim B, ub   ''中文字的Unicode码(2字节)
  36.     Dim UtfB    ''Utf-8单个字节
  37.     Dim UtfB1, UtfB2, UtfB3 ''Utf-8码的三个字节
  38.     Dim i, n, s
  39.     n = 0
  40.     ub = 0
  41.     For i = 1 To Len(URL)
  42.         B = Mid(URL, i, 1)
  43.         Select Case B
  44.             Case "+"
  45.                 s = s & " "
  46.             Case "%"
  47.                 ub = Mid(URL, i + 1, 2)
  48.                 UtfB = CInt("&H" & ub)
  49.                 If UtfB < 128 Then
  50.                     i = i + 2
  51.                     s = s & ChrW(UtfB)
  52.                 Else
  53.                     UtfB1 = (UtfB And &HF) * &H1000   ''取第1个Utf-8字节的二进制后4位
  54.                     UtfB2 = (CInt("&H" & Mid(URL, i + 4, 2)) And &H3F) * &H40      ''取第2个Utf-8字节的二进制后6位
  55.                     UtfB3 = CInt("&H" & Mid(URL, i + 7, 2)) And &H3F      ''取第3个Utf-8字节的二进制后6位
  56.                     s = s & ChrW(UtfB1 Or UtfB2 Or UtfB3)
  57.                     i = i + 8
  58.                 End If
  59.             Case Else    ''Ascii码
  60.                 s = s & B
  61.         End Select
  62.     Next
  63.     UTF8_UrlDecode = s
  64. End Function


  65. 'GBK URL编码
  66. Public Function URLEncode(ByRef strURL As String) As String
  67. Dim I As Long
  68. Dim tempStr As String
  69. For I = 1 To Len(strURL)
  70. If Asc(Mid(strURL, I, 1)) < 0 Then
  71. tempStr = "%" & Right(CStr(Hex(Asc(Mid(strURL, I, 1)))), 2)
  72. tempStr = "%" & Left(CStr(Hex(Asc(Mid(strURL, I, 1)))), Len(CStr(Hex(Asc(Mid(strURL, I, 1))))) - 2) & tempStr
  73. URLEncode = URLEncode & tempStr
  74. 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
  75. URLEncode = URLEncode & Mid(strURL, I, 1)
  76. Else
  77. URLEncode = URLEncode & "%" & Hex(Asc(Mid(strURL, I, 1)))
  78. End If
  79. Next
  80. End Function


  81. 'GBK URL解码
  82. Public Function URLDecode(ByRef strURL As String) As String
  83. Dim I As Long

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

  85. For I = 1 To Len(strURL)
  86. If Mid(strURL, I, 1) = "%" Then
  87. If Val("&H" & Mid(strURL, I + 1, 2)) > 127 Then
  88. URLDecode = URLDecode & Chr(Val("&H" & Mid(strURL, I + 1, 2) & Mid(strURL, I + 4, 2)))
  89. I = I + 5
  90. Else
  91. URLDecode = URLDecode & Chr(Val("&H" & Mid(strURL, I + 1, 2)))
  92. I = I + 2
  93. End If
  94. Else
  95. URLDecode = URLDecode & Mid(strURL, I, 1)
  96. End If
  97. Next
  98. End Function
复制代码




联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:关于kali局域网DNS 劫持相关参数
下一篇:windows下删除自身程序源码
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-5-13 21:27 , Processed in 0.342082 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表