Bug C++/Windows ? Affichage accents en console.
Bonjour à tous,
J'ai un problème assez perturbant et peu commun... Je cherche simplement à afficher de l'unicode à partir de wstring, en utilisant l'API Windows.
Le script .cpp suivant est encodé en UTF8.
Code:
1 2 3 4 5 6 7 8 9
| #include <windows.h>
#include <iostream>
int main(){
SetConsoleCP(CP_UTF8);
SetConsoleOutputCP(CP_UTF8);
std::wcout << L"é" << std::endl; // le résultat serai avec wprintf(L"é");
} |
Pas d'erreur de compilation. J'utilise GCC 5.1. L'exe s'appelle Test.exe.
Je sais que pour visualiser les accents en console, il faut utiliser une police appropriée, comme Lucida Console
Lorsque je lance le programme en console, il y a deux scenarii de figure en fonction des réglages de la police :
-Si je règle la police après mon exe, tout en restant dans la même console, alors je vois les accents.
Code:
1 2 3 4 5
| >rem Ici, je suis en police raster
>Test.exe
ù
>rem Ici, je règle la police de la console en Lucida Console
>rem mon ù précédent s'est transformé en é |
Ça me paraît logique.
-Maintenant, si je règle la police sur Lucida Console avant de lancer mon exe, je ne vois pas les accents !
Code:
1 2 3
| >rem Ici, je règle la police de la console en Lucida Console
>Test.exe
[ caractère rectangle blanc ] |
Des idées ?
Jean