Afficher Accents sur une console windows
Si vous écrivez un programme de la sorte
#include<stdio.h>
int main(void) {
puts("Un texte accentué");
}
et le compilrez avec MSVC et l’exécutez sur un terminal windows, il est possible que le caractère accentué s’affiche différemment. Par defaut le terminal de windows utilise une encodage OEM 850 🌍⤴ et non l’unicode. Il faut compiler le programme en utf-8 https://learn.microsoft.com/en-us/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8?view=msvc-170 🌍⤴
Si vous utilisez
Cmake
, ajoutez cette ligne dans votre CmakeLists
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
Et signaler à la console d’interpréter le texte comme utf8 an ajoutant SetConsoleOutputCP(CP_UTF8);
en début de la fonction main()
.
Si vous voulez rendre le programme plus portable, vous pouvez demander à ce que sur windows une autre fonction soit utilisée pour amorcer le programme, et cette fonction appellera la fonction main()
ensuite.
Cette technique est illégale en C++ car appeller la fonction main()
n’est pas autorisé dans ce langage.