** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - texto a UTF-16/ unicode
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

texto a UTF-16/ unicode

 Responder Responder
Autor
Mensaje
walter1972 Ver desplegable
Nuevo
Nuevo


Unido: 27/Mayo/2007
Localización: Argentina
Estado: Sin conexión
Puntos: 19
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita walter1972 Cita  ResponderRespuesta Enlace directo a este mensaje Tema: texto a UTF-16/ unicode
    Enviado: 13/Mayo/2019 a las 22:49
hola buen día,  tengo un cuadro de texto normal y quiero convertirlo a hexadecimal 
tengo la funcion HEX que funciona ok si pongo solo texto por ejemplo 

Hola = 68006F006C0061 /// esto va ok 

ahora el problema es si pongo un emojis por ejemplo Smile me devuelve = 003D00D8000A  cuando en realidad tendría que devolver : D83DDE0A  

los emojis los pongo con el teclado de windows 10 /  tecla "Windows + ."  la cual tiene emojis

la función que copie de Internet y uso para enviar mensajes SMS x PDU   :



Dim MiCadenaDeBytes() As Byte
MiCadenaDeBytes = Text29 ' aca el texto comun 
For i = LBound(MiCadenaDeBytes) To (UBound(MiCadenaDeBytes) - 1)

If Not hex(MiCadenaDeBytes(i)) = 0 Then
If hex(MiCadenaDeBytes(i)) = "AC" Then
mensaje = mensaje & "20" & Left(hex(MiCadenaDeBytes(i)), 4)
Else
If hex(MiCadenaDeBytes(i)) = "D" Then
mensaje = mensaje & "000" & Left(hex(MiCadenaDeBytes(i)), 4) '
Else
If hex(MiCadenaDeBytes(i)) = "A" Then
mensaje = mensaje & "000" & Left(hex(MiCadenaDeBytes(i)), 4)
Else
mensaje = mensaje & "00" & Left(hex(MiCadenaDeBytes(i)), 4) 
End If
End If
End If
End If
Next

texto30=mensaje ' aca tendria que devolver D83DDE0A la caritaSmile 
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1082
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Mayo/2019 a las 18:54
Una posibilidad es usar JavaScript, que tiene más posibilidades de trabajo con texto Unicode (u otro tipo de lenguaje de programación), y usarlo desde Access.

Un pequeño ejemplo:

- https://1drv.ms/u/s!AsYMk9OS3HACiEW5MsT-72QhjAFO

En el formulario hay incrustado un control ScriptControl para poder usar la función JavaScript que se agrega por código, y a partir de ahí se le llama con el texto a codificar y se recupera el resultado.
Arriba
walter1972 Ver desplegable
Nuevo
Nuevo


Unido: 27/Mayo/2007
Localización: Argentina
Estado: Sin conexión
Puntos: 19
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita walter1972 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Mayo/2019 a las 14:27
hola de nuevo el ejemplo funciona Ok con los emojis Smile solos , ahora el problema es con el texto lo devuelve pero no lo pone con los 00 adelante intente cambiar el codigo con ejemplos de google y me pone 00 al  D83DDE0A

texto ahora queda 686f6c61 tendria que quedar 0068006F006C0061 porque sino llegan caracteres chinos

si modifico el codigo de java "del cual no tengo idea" modifica tambien  el D83DDE0A y pone 0083003d00de000a Angry con lo cual no llega nada solo ??

Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1082
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 18/Mayo/2019 a las 17:15
Puedes controlar la longitud del código hexadecimal, y agregar ceros en consecuencia. El ejemplo actualizado:

- https://1drv.ms/u/s!AsYMk9OS3HACiEW5MsT-72QhjAFO

Otra posibilidad, dependiendo de dónde estás usando el Unicode, es colocar el identificador "U+" delante de cada código, para que el programa sepa que es un código Unicode.

Y otra posibilidad, más "pesada" al principio, es crear una tabla con 2 campos, uno para el carácter y otro para el código Unicode, y luego se tratará sólo de hacer una búsqueda:

- https://unicode-table.com/es/
Arriba
walter1972 Ver desplegable
Nuevo
Nuevo


Unido: 27/Mayo/2007
Localización: Argentina
Estado: Sin conexión
Puntos: 19
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita walter1972 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 20/Mayo/2019 a las 13:32
muchas gracias funciono ok con la primera solucion  / no sabia que javascrip se podia ejecutar desde ms access estuve buscando la solucion en VBA y nada . de nuevo muchas graciasSmile
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable