PDA

Visualizza la versione completa : [C++] Output errato di caratteri Unicode nella Console/Prompt


Mp1516
08-12-2017, 12:15
Ciao a tutti,
avrei bisogno di far apparire un carattere Unicode e quindi non presente nella tradizionale tabella ASCII nel mio programma in C++ ma, ahimè, mi si presentano sempre le stesse problematiche: o viene visualizzato un punto di domanda o un quadratino. L' unica soluzione che ho trovato mi permette di stampare, sì, un numero maggiore di caratteri ma non tutti e, soprattutto non quelli che servono a me:


#include <iostream>
#include <io.h>
#include <fcntl.h>
using namespace std;
int main()
{
_setmode(_fileno(stdout), _O_WTEXT);
wcout << L'\u0444';
system("pause");
}

come ho già detto, però, ho bisogno di poter stampare tutti i caratteri presenti in Unicode comprese le varie emoticon ecc. sapreste darmi una mano?
P.S. ho windows 10 e programmo in Visual Studio 2017

shodan
08-12-2017, 16:58
La console utilizza un OEM code page e non è pensata per mostrare caratteri unicode.
Qualcosa si può fare, ma dipende dal charset impostato per la console (si può cambiare), dal font usato (dev'essere Lucida Console) e se nel font usato c'è il simbolo che serve.
Qui c'è qualche riferimento:
http://archives.miloush.net/michkap/archive/2008/03/18/8306597.html
https://stackoverflow.com/questions/2492077/output-unicode-strings-in-windows-console-app
In linea generale in caso di stringhe unicode può essere preferibile convertire il tutto in UTF8 e aprire col notepad.

Mp1516
08-12-2017, 21:50
Ti ringrazio per la risposta, mi prenderò del tempo per leggermi tutto con calma; vi farò sapere

Loading