Título: Como convertir Unicode a ascii
Publicado por: thecirujano en 8 Febrero 2011, 13:58 pm
Como puedo convertir un string unicode a ascii?
Título: Re: Como convertir Unicode a ascii
Publicado por: Psyke1 en 8 Febrero 2011, 14:09 pm
Busca: StrConv()
DoEvents! :P
Título: Re: Como convertir Unicode a ascii
Publicado por: thecirujano en 8 Febrero 2011, 14:24 pm
s = StrConv(Buffer, vbUnicode) creo que me explique mal lo tengo así y me devuelve caracteres ilegibles, luego le aplique un strptr(s) y ahora me devuelve un valor numérico. Sabes algun tipo de transformacion que me pueda ser util, lo estoy utilizando para leer la respuesta de una impresora conectada mediante bluetooth
Título: Re: Como convertir Unicode a ascii
Publicado por: raul338 en 8 Febrero 2011, 14:36 pm
s = StrConv(Buffer, vbFromUnicode) Sino una mas burda Dim chars() as Byte Dim sUnicode as String Dim sAscii as string ' Asignas sUnicode chars = StrConv(sUnicode, vbUnicode) sAscii = StrConv(chars, vbFromUnicode)
Puedes ir variando
Título: Re: Como convertir Unicode a ascii
Publicado por: LeandroA en 8 Febrero 2011, 15:49 pm
hola quizas sea Unicode a UTF8 o al revez Option Explicit
Private 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 Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long Private Const CP_UTF8 As Long = 65001
Public Function UTF82Unicode(ByVal sUTF8 As String) As String Dim UTF8Size As Long Dim BufferSize As Long Dim BufferUNI As String Dim LenUNI As Long Dim bUTF8() As Byte If LenB(sUTF8) = 0 Then Exit Function bUTF8 = StrConv(sUTF8, vbFromUnicode) UTF8Size = UBound(bUTF8) + 1 BufferSize = UTF8Size * 2 BufferUNI = String$(BufferSize, vbNullChar) LenUNI = MultiByteToWideChar(CP_UTF8, 0, bUTF8(0), UTF8Size, StrPtr(BufferUNI), BufferSize) If LenUNI Then UTF82Unicode = Left$(BufferUNI, LenUNI)
End Function
Public Function Unicode2UTF8(ByVal strUnicode As String) As String Dim LenUNI As Long Dim BufferSize As Long Dim LenUTF8 As Long Dim bUTF8() As Byte LenUNI = Len(strUnicode) If LenUNI = 0 Then Exit Function BufferSize = LenUNI * 3 + 1 ReDim bUTF8(BufferSize - 1) LenUTF8 = WideCharToMultiByte(CP_UTF8, 0, StrPtr(strUnicode), LenUNI, bUTF8(0), BufferSize, vbNullString, 0) If LenUTF8 Then ReDim Preserve bUTF8(LenUTF8 - 1) Unicode2UTF8 = StrConv(bUTF8, vbUnicode) End If
End Function
|