请asftrhgjhkjlkttttttt老师帮忙,解决这个问题!

解决方案 »

  1.   

    不好意思引起误解!特致歉!原问题为Public Function Base64Decode(strEncoded As String) As String
      
      On Error Resume Next
      Dim arrB() As Byte, bTmp(3)  As Byte, bT As Long, bRet() As Byte
      Dim I As Long, J As Long
      arrB = StrConv(strEncoded, vbFromUnicode)
      J = InStr(strEncoded & "=", "=") - 2
      ReDim bRet(J - J \ 4 - 1)  For I = 0 To J Step 4
        Erase bTmp
        bTmp(0) = (InStr(cstBase64, Chr(arrB(I))) - 1) And 63
        bTmp(1) = (InStr(cstBase64, Chr(arrB(I + 1))) - 1) And 63
        bTmp(2) = (InStr(cstBase64, Chr(arrB(I + 2))) - 1) And 63
        bTmp(3) = (InStr(cstBase64, Chr(arrB(I + 3))) - 1) And 63
        
        bT = bTmp(0) * 2 ^ 18 + bTmp(1) * 2 ^ 12 + bTmp(2) * 2 ^ 6 + bTmp(3)
        
        bRet((I \ 4) * 3) = bT \ 65536
        bRet((I \ 4) * 3 + 1) = (bT And 65280) \ 256
        bRet((I \ 4) * 3 + 2) = bT And 255
      Next  Base64Decode = StrConv(bRet, vbUnicode)
    End Function
    这是base64解码的代码,问题是解码后出现乱码,如汉字“汤”“览”等汉字
    如何解决,请高手帮忙!!!!
      

  2.   

       //GBK汉字内码范围
       //区码  ,位码
       //81-A0 ,40-7E 80-FE
       //AA-AF ,40-7E 80-A0
       //B0-D6 ,40-7E 80-FE
       //D7    ,40-7E 80-F9
       //D8-F7 ,40-7E 80-FE
       //F8-FE ,40-7E 80-A0
    InStr→InStrB
    Chr→ChrB
    再试试
      

  3.   

    zhao4zhong1:按你试了一试,原来是一部分为数字,一部分为乱码,现在变成了全是乱码!