Установка локали для wcin
Создаю клиент-серверное приложение, мини мессанджр. И пытаюсь передать русские символы из Windows в Ubuntu. Постоянно приходили какие-то кракозябры и не мог понять в чем же дело, даже распечатал коды символов в Windows и Ubuntu, получив при этом одинаковый результыт, короче, выяснилось что команда wcin
установлена в другой локали, посмотрел в интернете как устанавливается для wcin
локаль, что-то вроде: std::wcin.imbue(std::locale(""));
но постоянно устанавливается локаль C
которая конечно же ничего не отображает корректно, вместо кода 'A'=410, печатается код = 402. Я пытался сделать следующее:
std::string local = std::setlocale(LC_ALL, "");
std::wcout.imbue(std::locale(local));
std::wcin.imbue(std::locale(local));
но получаю ошибку: terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not valid чтобы я туда не писал(".1251","rus",".utf8" и т.д. ) На все один ответ, не знаю что мне делать с этим. Очень нужно, чтобы кто-то помог установить локаль для wcin.