Intro :
Quand on écrit une chaine de caractères avec des caractères de l’alphabet français (é, ù, ç, à, etc…) dans la console, ils s’affichent de la mauvaise façon.
Exemple :
#include <iostream>
int main()
{
std::cout << "J'écris ça avec plein de caractères spéciaux : éùàè" << std::endl;
}
Ensuite il s’affiche dans la console :
J'Úcris Þa...
Il y a donc un problème de reconnaissance des caractères spéciaux.
Explications :
Une façon de résoudre ce problème est d’utiliser cette fonction :
#include <Windows.h>
#include <string>
std::string Formater(const std::wstring& src)
{
char outString[512];
CharToOemW(src.c_str(), outString);
return std::string(outString);
}
// Exemple d'utilisation :
std::cout << Formater("J'écris ça avec plein de caractères spéciaux : éùàè") << std::endl;
Maintenant on peut afficher correctement les caractères spéciaux :
Résumé :
Avec l’alphabet français on ne pouvait pas écrire de texte avec les caractères spéciaux.
Mais avec la fonction Formater() présenté, les caractères s’affichent correctement.
Références :
– http://h-deb.clg.qc.ca/Sujets/AuSecours/Afficher–Accents.html


