Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como convertir texto japones a hexadecimal?

Estas en el tema de Como convertir texto japones a hexadecimal? en el foro de Visual Basic clásico en Foros del Web. Saludos compañeros. Esta vez vengo a pedir ayuda para mi, a ver si alguien tiene mas idea o suerte que yo. Se que hay gente ...
  #1 (permalink)  
Antiguo 14/09/2013, 07:33
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Como convertir texto japones a hexadecimal?

Saludos compañeros.
Esta vez vengo a pedir ayuda para mi, a ver si alguien tiene mas idea o suerte que yo.
Se que hay gente por aqui con conocimientos y que disfrutan con los retos.

Siguiendo mi linea, es algo que hago por hobby y no tiene nada que ver con bases de datos. El caso es que se me estan quemando los fusibles.

Voy a extenderme un poco, pero es para que quede claro el tema y para evitar que os molesteis en darme ideas que ya he probado, etc.

Encontre un codigo que sirve para mandar texto para traducir online con google web translate.
Lo modifique para que capture el portapapeles y devuelva el resultado al mismo portapapeles.
De este modo solo tienes que copiar un texto y el solo se traduce con la opcion "detect".
Si pongo un programa de texto a voz que capture tambien el portapapeles, al momento despues de copiarlo estoy escuchando la traduccion.
Esto como es obvio viene muy bien para navegar por la red, aunque yo lo estoy usando tambien para otros temas.

El caso es que intento que el programa traduzca textos en japones.
Tengo el idioma japones instalado y utilizo textbox del Forms 2.0 para poder verlo bien sin usar AppLoc.
El texto aparece bien en el textbox, y si lo mando a una variable y de esta a otro textbox se copia perfectamente.
El problema es que cuando intento traducirlo, el resultado es ??????? haga lo que haga.

Esta es la funcion que uso para pedir la traduccion:
En la variable sUrl ponemos la direccion web y el texto a traducir, parametros, etc...
y despues filtramos el resultado para encontrar la traduccion.

Código vb:
Ver original
  1. Public Function GetHTMLFromURL(ByVal sUrl As String) As String
  2. Dim S                  As String
  3. Dim hOpen              As Long
  4. Dim hOpenUrl           As Long
  5. Dim bDoLoop            As Boolean
  6. Dim bRet               As Boolean
  7. Dim sReadBuffer        As String * 2048
  8. Dim lNumberOfBytesRead As Long
  9.  
  10. hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  11. hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
  12.  
  13. bDoLoop = True
  14.  
  15. While bDoLoop
  16.     sReadBuffer = vbNullString
  17.     bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
  18.     S = S & Left$(sReadBuffer, lNumberOfBytesRead)
  19.     If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
  20. Wend
  21.  
  22. If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
  23. If hOpen <> 0 Then InternetCloseHandle (hOpen)
  24.  
  25. GetHTMLFromURL = S
  26.  
  27. End Function

He descubierto que si pego el texto en japones en la pagina del traductor de Google, en la dirección aparece el texto en hexadecimal.
Si copio y pego ese texto hexadecimal en mi programa ¡se traduce!.
ejm: %E5%8A%A0%E5%A5%88%E5%A7%89%E3%81%A1%E3%82%83%E3%8 2%93%E3%81%AB
(a mi me da que %E5 y %E3 son codigos y los 2 siguientes valores el caracter)
No es una simple conversion a hexadecimal, ya que cuando lo intento yo el resultado es:
%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F.....
La conversion esta bien porque con textos en ingles parece convertirlos bien y se traducen, pero no es valida para el japones.
Supongo que tendra codigos de control que no conozco, pero pienso que sabiendo del tema debe ser facil.

He encontrado esta página que convierte texto a hexadecimal de la forma que yo necesito:
http://www.asciitohex.com/
Ahi si pegas un texto en japones te lo pasa al hexadecimal adecuado. En la ventana "Url Encoded" aparece como yo lo necesito.

Esta otra pagina por ejemplo lo convierte a F3 como mi funcion.
http://www.string-functions.com/string-hex.aspx

Necesitaria saber como lo hacen en http://www.asciitohex.com/ y pasarlo a VB6.

Estas serian mis preguntas:
Como mando el texto en japones al traductor?
Alguien tiene alguna idea mas para convertir el japones al ascii adecuado?
Me conformaria con un conversor que solo sirva para japones, o uno para cada idioma. Con solo seleccionar el idioma de origen podria saber que conversor usar.

Otra opcion es intentar usar http://www.asciitohex.com/ como conversor.
Si consiguiera de forma oculta pedir la conversion a esa pagina como pido la traduccion al google translate, aunque no sea el mejor metodo me valdria.
Sin embargo creo que solo funciona desde el explorer, y no se como: rellenar el campo "text ascii", pinchar en "convert" y recibir el contenido de una de las ventanas en hex, o aunque sea todo el codigo fuente resultante.
La cosa es que en este tema estoy "pez", como con las bases de datos.
Llevo un par de dias dandole vueltas y me temo que si lo consigo por mi mismo me va a costar un gran esfuezo y mucho tiempo, de modo que he pensado que quizas alguien entienda del tema y me pueda echar una mano. Mi cabeza ya no es lo que era.

Si necesitais mas explicaciones o funciones solo decidlo.

Gracias por llegar hasta aqui ;D
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Etiquetas: japones, vb6, ventana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:48.