Top.Mail.Ru
Ответы

Определение кодировки в консольном приложении

Здравствуйте! Нужна помощь в определении кодировки. Строка "Строка ввода: " сохранена в кодировке UTF-8 with BOM. Я не могу определить кодировку, с помощью которой Windows Terminal выводит. Она не соответствует ни одной кодировке кириллицы, но судя по порядку символов исходя из тех, которые встречаются в ASCII, кодировка кодируется также, как UTF-8. Консольное приложение открыто через Visual Studio и запрограммировано с помощью Си.

Операционная система Windows 11.

(Сохранённая строка)

(Выведенная строка)

По дате
По рейтингу
Аватар пользователя
Новичок

Чтобы определить текущую кодировку консоли, например, для восстановления при выходе из программы:

123
 #include <Windows.h>
...
auto t = GetConsoleOutputCP(); 


По дефолту в русской винде она должна быть 866

Аватар пользователя
Оракул

cp866

Аватар пользователя
Мыслитель

сам настрой кодировку программно:
setlocale(LC_ALL, "Russian");

выводи в консоль потом правильно:
wchar_t *wtext=L"русский текст";
wprintf(L"%ls", wtext); //или wprintf(L"%s", wtext);