post数据的问题的问题--紧急(50分)
我想把一串字符转化为“%3CA+href%3D%22http%3A%2F%2Fwww.163.com3CA%"这样的格式,如何弄?
就是post的时候要传输的字符,有直接转化的函数吗

解决方案 »

  1.   

    Public Declare Function MultiByteToWideChar Lib "kernel32" Alias "MultiByteToWideChar" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long) As LongPublic Declare Function WideCharToMultiByte Lib "kernel32" Alias "WideCharToMultiByte" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As LongCodePage可以选CP_UTF8,具体用法查MSDN
      

  2.   

    http://community.csdn.net/Expert/topic/5030/5030862.xml?temp=.199917
      

  3.   

    我要转化的字符串中带中文的,happy_sea(开心海)你的方法转化出来后,还原显示的是乱码.有什么办法能让其正常吗?谢谢
      

  4.   

    Option ExplicitPrivate Const CP_ACP = 0        ' default to ANSI code pagePrivate Const CP_UTF8 = 65001   ' default to UTF-8 code pagePrivate Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As LongPrivate Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As LongPrivate Function EncodeToBytes(ByVal sData As String) As Byte() ' Note: Len(sData) > 0
        Dim aRetn() As Byte
        Dim nSize As Long
        
        nSize = WideCharToMultiByte(CP_UTF8, 0, StrPtr(sData), -1, 0, 0, 0, 0)
        ReDim aRetn(0 To nSize - 1) As Byte
        WideCharToMultiByte CP_UTF8, 0, StrPtr(sData), -1, VarPtr(aRetn(0)), nSize, 0, 0
        
        EncodeToString = aRetn
    End FunctionPrivate Function EncodeToString(ByVal sData As String) As String    ' Note: Len(sData) > 0
        Dim sRetn As String
        Dim aData() As Byte
        Dim nSize As Long
        Dim sChar As String
        Dim i As Long
        
        nSize = WideCharToMultiByte(CP_ACP, 0, StrPtr(sData), -1, 0, 0, 0, 0)
        ReDim aData(0 To nSize - 1) As Byte
        WideCharToMultiByte CP_ACP, 0, StrPtr(sData), -1, VarPtr(aData(0)), nSize, 0, 0
        sRetn = ""
        For i = 0 To UBound(aData) - 1
            sChar = Hex(aData(i))
            If Len(sChar) = 1 Then sChar = 0 & sChar
            sRetn = sRetn & "%" & sChar
        Next
        
        EncodeToString = sRetn
    End Function
      

  5.   

    刚又改了一下,看看能用不?Private Function URLEncode(ByVal input_url As String) As String
       Dim count As Long
       Dim one_char As String
       URLEncode = ""
       For count = 1 To Len(input_url)
           one_char = Mid(input_url, count, 1)
           If InStr("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", UCase(one_char)) = 0 Then
               If Asc(one_char) < 0 Then
                   one_char = "%" & Right(Hex(Asc(one_char)), 2) & "%" & Left(Hex(Asc(one_char)), 2)
               Else
                   one_char = "%" & Right("0" & Hex(Asc(one_char)), 2)
               End If
           End If
           URLEncode = URLEncode & one_char
       Next
    End FunctionPrivate Sub Command1_Click()
        MsgBox URLEncode(Text1.Text)
    End Sub