我用inet来获取UTF-8网页源码,但得到的中文是乱码?请问怎样转换呢?我找了几个UTF-8解码程序,但都不完整,解出来的有很多?号

解决方案 »

  1.   

    没人?那我自己回答了Public Function CharsetConvert(str As String, oldCharset As String, newCharset As String)
        Set Stream = CreateObject("ADODB.Stream")
        Stream.Type = 2
        Stream.Mode = 0
        Stream.Open
        Stream.Charset = newCharset
        Stream.WriteText (str)
        Stream.Position = 0
        Stream.Type = 2
        Stream.Charset = oldCharset
        s = Stream.ReadText()
        Stream.Close
        CharsetConvert = s
    End Function
      

  2.   

    去看看http://community.csdn.net/Expert/topic/5380/5380964.xml?temp=.8642542
      

  3.   

    tsorgy() :载入样式表单出错: 分析 XSLT 样式表单失败。
      

  4.   

    靠,搞了七七四十九天:Inet2.Execute url, "get"Private Sub Inet2_StateChanged(ByVal State As Integer)
        Dim strbuffer() As Byte
        Select Case State
        Case icResponseCompleted '12
        strbuffer = Inet2.GetChunk(5000000, icByteArray)
        Debug.Print UTF8_Decode(strbuffer)
        Case Else
        End Select
    End SubPublic Function UTF8_Decode(ByRef bUTF8() As Byte) As String
    'UTF-8 解码
    Dim lRet As Long
    Dim lLen As Long
    Dim lBufferSize As Long
    Dim sBuffer As String
    Dim bBuffer() As Byte
    lLen = UBound(bUTF8) + 1
    If lLen = 0 Then Exit Function
    lBufferSize = lLen * 2
    sBuffer = String$(lBufferSize, Chr(0))
    lRet = MultiByteToWideChar(CP_UTF8, 0, VarPtr(bUTF8(0)), lLen, StrPtr(sBuffer), lBufferSize)
    If lRet <> 0 Then
    sBuffer = Left(sBuffer, lRet)
    End If
    UTF8_Decode = sBuffer
    End Function太完美了!!!!