Pregunta: | 55257 - CONVERTIR UNICODE/ANSI/UNICODE |
Autor: | manuel sabogal |
Estoy desarrollando una aplicacion con sockets en visual basic 6 y requiero hacer una conversion de codigo para disminuir el peso de los paquetes enviados. Solo requiero enviar Stream, pero para ello hago una conversion de codigo de ANSI a UTF8, pero a la hora de recivir los Stream en UTF8 no puedo convertirlos de nuevo a ANSI, solo logro tomar los caracteres en ASCII. El codigo q uso para enviar convertir los datos a UTF8 es: Public Declare Function WideCharToMultiByte Lib "kernel32" _ (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long Public Const CP_UTF8 = 65001 Public Function WideToUnicode(ByVal StrWide As String) As String Dim stBuffer() As Byte Dim cwch As Long Dim pwzBuffer As Long If Len(StrWide) = 0 Then Exit Function pwzBuffer = Len(StrWide) * 3 + 1 ReDim stBuffer(pwzBuffer - 1) cwch = WideCharToMultiByte(CP_UTF8, 0&, StrPtr(StrWide), Len(StrWide), stBuffer(0), pwzBuffer, vbNullString, ByVal 0&) If cwch Then cwch = cwch - 1 ReDim Preserve stBuffer(cwch) WideToUnicode = StrConv(stBuffer, vbUnicode) End If End Function Como puedo mejorar este codigo lograr una conversion de UTF8 a ANSI correcta??? |