网页的url编码怎么用vb来实现?
答案:2 悬赏:20 手机版
解决时间 2021-04-05 04:05
- 提问者网友:世勋超人
- 2021-04-04 04:44
比如百度,出来的结果是%B0%D9%B6%C8,怎么用vb代码实现
最佳答案
- 五星知识达人网友:鱼芗
- 2021-04-04 04:52
我发你编码和解码的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 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
全部回答
- 1楼网友:鱼忧
- 2021-04-04 05:20
'编码函数
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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯