Sto facendo questo semplice output da un'applicazione console creata da Unicode (utilizzando C++ e Visual Studio 2008). Questo codice è destinato a essere eseguito su Windows:_tprintf con caratteri Unicode in un'app console
_tprintf(L"Some sample string\n");
Tutto funziona correttamente. Ma se posso aggiungere un carattere non ASCII in là:
_tprintf(L"Some sample € string\n");
che cosa ottiene in uscita per la console è tutto fino a quel personaggio:
Alcuni campione
Cosa faccio di sbagliato Qui?
È perché la tua console non è in grado di visualizzare quel personaggio. La conversione da codice Unicode alla pagina di codice a 8 bit non riesce e la stringa viene troncata. La code page predefinita per una console è normalmente 437, la vecchia tabella codici PC IBM, una macchina progettata prima che l'Europa adottasse la sua nuova valuta. Dovrai passare la console a un'altra codifica che ha il carattere, SetConsoleOutputCP(). –
Ho appena provato a chiamare "SetConsoleOutputCP (1200);" prima di quella chiamata e nulla è cambiato. – ahmd0
dare '_setmode (_fileno (stdout), _O_WTEXT);' a prova – Cubbi