vb中怎么写URLEncode编码?

2025-06-22 14:21:56
推荐回答(3个)
回答1:

这个程序就是vb的源程序.
"我们" 转换成"%CE%D2%C3%C7 ",这是asc的编码
"%E6%88%91%E4%BB%AC " 是"我们"的UTF-8的编码.

用这个函数可以获得UTF-8编码

Function GBtoUTF8(szInput)
Dim wch, uch, szRet
Dim x
Dim nAsc, nAsc2, nAsc3

'如果输入参数为空,则退出函数
If szInput = "" Then
GBtoUTF8 = szInput
Exit Function
End If

'开始转换
For x = 1 To Len(szInput)
wch = Mid(szInput, x, 1)
nAsc = AscW(wch)

If nAsc < 0 Then nAsc = nAsc + 65536

If (nAsc And &HFF80) = 0 Then
szRet = szRet & wch
Else
If (nAsc And &HF000) = 0 Then
uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
szRet = szRet & uch
Else
uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _
Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _
Hex(nAsc And &H3F Or &H80)
szRet = szRet & uch
End If
End If
Next
GBtoUTF8 = szRet
End Function

回答2:

  vb中URLEncode编码的写法:
  代码如下:
  Public Function URLEncode(ByVal strParameter As String) As String
  Dim s As String
  Dim I As Integer
  Dim intValue As Integer

  Dim TmpData() As Byte

  s = ""
  TmpData = StrConv(strParameter, vbFromUnicode)
  For I = 0 To UBound(TmpData)
  intValue = TmpData(I)
  If (intValue >= 48 And intValue <= 57) Or _
  (intValue >= 65 And intValue <= 90) Or _
  (intValue >= 97 And intValue <= 122) Then
  s = s & Chr(intValue)
  ElseIf intValue = 32 Then
  s = s & "+"
  Else
  s = s & "%" & Hex(intValue)
  End If
  Next I
  URLEncode = s
  end Function

回答3:

多谢楼下回答,解决大问题了。