std::wstring vs std::string : quand utiliser Unicode et quand utiliser ASCII en C++ ?
Bonjour à tous ! Je suis un développeur C++ débutant, et la différence entre std::wstring et std::string me trouble constamment. J'ai lu que std::string est pour les chaînes "normales", et std::wstring pour Unicode. Mais en pratique, j'ai beaucoup de problèmes.\n\nVoici un exemple : j'écris un programme qui lit les noms de fichiers dans un dossier. Certains fichiers contiennent du cyrillique, par exemple "отчет.docx". J'utilise std::string :\n\n```cpp\nstd::string filename = "отчет.docx";\nstd::ifstream file(filename);\n```\n\nEt le fichier ne s'ouvre pas ! Si j'utilise std::wstring et wifstream, tout fonctionne :\n\n```cpp\nstd::wstring filename = L"отчет.docx";\nstd::wifstream file(filename);\n```\n\nMais alors de nouveaux problèmes apparaissent : je ne peux pas passer wstring à des fonctions qui attendent std::string (par exemple, dans des bibliothèques anciennes), et lors de l'affichage en c