Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problema al convertir un CString a UTF-8 VC++

Estas en el tema de problema al convertir un CString a UTF-8 VC++ en el foro de C/C++ en Foros del Web. hola amigos, tengo el siguiente problema, no se como convertir un CString a UTF-8 en visual c++, ya me quebre la cabeza y no lo ...
  #1 (permalink)  
Antiguo 15/07/2009, 08:38
Avatar de Anubis_Slash  
Fecha de Ingreso: mayo-2009
Ubicación: aqui y haya
Mensajes: 173
Antigüedad: 15 años
Puntos: 5
problema al convertir un CString a UTF-8 VC++

hola amigos,

tengo el siguiente problema, no se como convertir un CString a UTF-8 en visual c++, ya me quebre la cabeza y no lo consigo, alguno de ustedes me podria pasar algun codigo o ejemplos de como hacerlo, desde ya gracias
  #2 (permalink)  
Antiguo 15/07/2009, 11:52
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: problema al convertir un CString a UTF-8 VC++

Del CString podes obtener la cadena en ASCII (metodo c_str) y despues podes usar la funcion MultiByteToWideChar de la API de Windows (CP_UTF8 como codigo de paginas).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 15/07/2009, 14:23
Avatar de Anubis_Slash  
Fecha de Ingreso: mayo-2009
Ubicación: aqui y haya
Mensajes: 173
Antigüedad: 15 años
Puntos: 5
Respuesta: problema al convertir un CString a UTF-8 VC++

gracias por responder Eternal Idol, me voy a explicar mas para ver si puedes ayudarme...

tengo mi programa en ascii y no puedo cambiarlo a unicode, abro el CFileDialog y selecciono una foto con caracteres extraños (ya sean persas, turcos, chinos, etc), el problema es que cuando saco el nombre del archivo no me viene como deberia ser, me aparecen puros ??????.png por ejemplo, como puedo sacar el nombre del archivo y que me aparezca como debe ser..

tengo este nombre de archivo: யாமறிந்த y cuando saco el nombre me aparece: ????

cualquier ayuda es bienvenida.
  #4 (permalink)  
Antiguo 15/07/2009, 14:54
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: problema al convertir un CString a UTF-8 VC++

Supongo que lo mas simple seria genera el proyecto con UNICODE y _UNICODE definidos. Fijate por aca (o CFileDialog unicode en Google): http://social.msdn.microsoft.com/For...3-ad38c06a6ef7
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 16/07/2009, 08:09
Avatar de Anubis_Slash  
Fecha de Ingreso: mayo-2009
Ubicación: aqui y haya
Mensajes: 173
Antigüedad: 15 años
Puntos: 5
Respuesta: problema al convertir un CString a UTF-8 VC++

Eternol Idol, como bien dices lo mas facil seria hacer eso, pero para mi el programa se tiene que adecuar a lo que ya se tiene, y en este caso ya estaba el proyecto creado en multibyte por lo que cambiarlo todo a unicode no me parece la opcion mas viable (es demasiado grande el proyecto), espero encontrar una solucion pronto...

saludos
  #6 (permalink)  
Antiguo 16/07/2009, 09:46
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: problema al convertir un CString a UTF-8 VC++

Solucion: usar la API de Windows directamente en lugar de usar un wrapper que parece ser bastante poco flexible (o encontrarle la vuelta a ese wrapper de la MFC que usas).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 20/07/2009, 15:27
Avatar de Anubis_Slash  
Fecha de Ingreso: mayo-2009
Ubicación: aqui y haya
Mensajes: 173
Antigüedad: 15 años
Puntos: 5
Respuesta: problema al convertir un CString a UTF-8 VC++

Gracias Eternal Idol, despues de pensarlo todo he decidido (junto con todo el equipo de trabajo) que la mejor forma es convertir todo a unicode, esto lo tomamos pensando en el futuro y las posibles necesidades que puedan surgir, de cualquier manera muchas gracias por la ayuda.... te debo una
  #8 (permalink)  
Antiguo 21/07/2009, 00:33
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: problema al convertir un CString a UTF-8 VC++

De nada, para empezar normalmente es suficiente poner una T delante de todas las cadenas, cuando definas UNICODE sera una L y sino nada y seguira siendo una cadena ASCII.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
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 13:17.