Avatar ·

std::wstring contre std::string : quand utiliser Unicode et les chaînes multi-octets en C++ ?

Bonjour ! J'ai récemment commencé à apprendre le C++ et j'ai rencontré un problème de choix entre std::string et std::wstring. Apparemment, les deux types sont conçus pour travailler avec du texte, mais je ne comprends pas la différence et quand utiliser quoi. Voici un exemple simple : j'écris un programme qui doit fonctionner avec des caractères russes : ```cpp #include #include int main() { std::string str = "Привет, мир!"; std::wstring wstr = L"Привет, мир!"; std::cout << "string length: " << str.length() << std::endl; std::wcout << L"wstring length: " << wstr.length() << std::endl; // J'essaie d'afficher le caractère par index std::cout << "Первый символ string: " << str[0] << std::endl; std::wcout << L"Первый символ wstring: " << wstr[0] << std::endl; } ``` La sortie me trouble : la longueur de std::string s'avère plus grande que le nombre de caractères dans la chaîne, tandis que wstring se comporte différemment. J'ai aussi entendu dire qu'il y a des problèmes avec Unicode, les encodages et les plateformes. Veuillez m'expliquer, s'il vous plaît.