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

caracteres Chinos en C++

Estas en el tema de caracteres Chinos en C++ en el foro de C/C++ en Foros del Web. Buenas gente! como están? Tengo una consulta, resulta que escribo codigo de c++ en netbeans, entre lo que escribo, escribo caracteres en chino, pero cuando ...
  #1 (permalink)  
Antiguo 07/05/2015, 10:12
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 9 años, 7 meses
Puntos: 0
caracteres Chinos en C++

Buenas gente! como están?

Tengo una consulta, resulta que escribo codigo de c++ en netbeans, entre lo que escribo, escribo caracteres en chino, pero cuando ejecuto el código no me salen los caracteres, solo salen signos de pregunta.
Será que tengo que incluir alguna librería en especifico o algo por el estilo, tengo que descargar algo?? no seee...

De verdad agradecería si alguien me puede colaborar con esto, llevo todo un día buscando en internet algo al respecto
  #2 (permalink)  
Antiguo 07/05/2015, 13:49
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: caracteres Chinos en C++

En C++ puro y duro tienes wchar_t*... que es el sustituto de char* para idiomas no ASCII.

Otra opción que puedes usar, y que en mi caso ha funcionado a la perfección, es usar Qt. La clase QString es capaz de manejar diferentes idiomas con soltura.

¿Por qué no puedes usar char*? Pues porque char*, o signed char* usa 7 bits para cada caracter... lo que dan 256 combinaciones. El chino tendrá... cuantos? varios miles de símbolos diferentes?

Un saludo
  #3 (permalink)  
Antiguo 07/05/2015, 15:20
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: caracteres Chinos en C++

Cita:
Iniciado por eferion Ver Mensaje
En C++ puro y duro tienes wchar_t*... que es el sustituto de char* para idiomas no ASCII.

Otra opción que puedes usar, y que en mi caso ha funcionado a la perfección, es usar Qt. La clase QString es capaz de manejar diferentes idiomas con soltura.

¿Por qué no puedes usar char*? Pues porque char*, o signed char* usa 7 bits para cada caracter... lo que dan 256 combinaciones. El chino tendrá... cuantos? varios miles de símbolos diferentes?

Un saludo
De verdad muchísimas gracias por responder, sin embargo no me está funcionando, no se si es que lo estoy metiendo mal, hice varias pruebas, te adjunto las 3 pruebas que hice.

1-
#include <iostream>

using namespace std;

wchar_t a = '爸';

main(){
cout<< a;
return (0);
}


2-
#include <iostream>
#include <wchar.h>

using namespace std;

wchar_t a = '爸';

main(){
cout<< a;
return (0);
}

3-
#include <iostream>

using namespace std;

wchar_t a = L'爸';

main(){
cout<< a;
return (0);
}

4- igual que la tres pero con include de wchar.

como no me salió a la primera y para no molestar sin intentar un poco más, me puse a investigar un poco sobre el wchar, en algunos lados decía que incluyera la "L" luego de la llamada al wchar_t y en otros que incluyera la librería que incluí en la prueba 2, evidentemente ninguna de las dos cosas me sirivó, en vez de generarme el caracter, me genera numeros. Además me surge otra duda, en caso de que a una letra le tenga que poner wchar_t a = '爸爸'; (por ejemplo), que sucedería en caso de que todo mi programa deba leerse en mandarín? , que se yo, quizá algo que diga:

#include<iostream>
using namespace std;
main(){
cout<<"你好, 你叫什麼名字?"<<endl;
return (0)
}


En realidad soy bastante nuevo en esto del c++, y en lo poco que llevo no había tenido que hacer algo con caracteres orientales (hasta ahora que me lo propuse), estoy un poco perdido.

De verdad muchas gracias por tu atenta respuesta.
  #4 (permalink)  
Antiguo 08/05/2015, 00:47
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: caracteres Chinos en C++

cout no está pensado para volcar wchar_t.... en su lugar deberías usar wcout.

Por otro lado, dado que estás programando en C++, vas a conseguir un código más limpio si usas la clase wstring en vez de usar punteros wchar_t

Un saludo

Etiquetas: caracteres, chinos, int
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 01:46.