Mag1str
@Mag1str

Как вывести кирилицу в консоль?

Уже все пробовал, не помагает.
60afa4f720ea1313011785.png
  • Вопрос задан
  • 2727 просмотров
Решения вопроса 2
Sergomen
@Sergomen
Просто делай добро и оно вернётся
Во-первых: установи notepad++ открой файл и во вкладке "кодировка" нажми "превратить в ANSII" и сохрани файл.

Во-вторых(можешь попробовать но врятли сработает, но тогда не выполняй то что написано выше): если у тебя файл кодирования в utf-8 то кодовая страница кодировки utf-8 cmd не 1251 а 65001 (кстати ,я не проверял будет ли нормально показыватся utf-8 при system("chcp 65001") )

В-третьих: это ещё может быть из-за шрифта который используется в cmd(многих знакомых спасало), если кликнуть пкм по верхней рамки окна и нажать "значения по умолчанию" в одной из вкладок можно сменить шрифт.
Ответ написан
vabka
@vabka
Токсичный шарпист
Скорее всего, нужно не 1251, а 65001, тк исходники в UTF-8 кодировке.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
RiseOfDeath
@RiseOfDeath
Диванный эксперт.
А можно конкретно перечислить что "все" вы пробовали.

Т.к. кириллица в консоли все-таки работает там, где надо - вы явно не все способы перепробовали.

Начнем по порядку - что команда chcp 1251 > nul, по вашему, должна сделать? Для чего вы ее дергаете?

Далее - какую кодировку "пытается" использовать консоль, а в какой кодировке исходное сообщение?

spoiler
Судя по кракозябрам текст в исходниках, скорее всего, в utf-8, а консоль хочет какую-то однобайтную кодировку, возможно даже cp1251, но это не точно
Ответ написан
@SudLets
Если необходим только вывод кириллицы на консоль, то используйте функцию setlocale():
#include <iostream>
using namespace std;
int main() 
{
    setlocale(LC_ALL, "Russian");
    cout << "Привет!\n";
    return 0;
}


Более подробно расписано тут: https://code-live.ru/post/cpp-cyrillic-manual/
Ответ написан
@WowDev
Программист
В начале кода можно писать setlocale(LC_ALL, "");

Пример:
#include <iostream>

using namespace std;
int main() {
    setlocale(LC_ALL, "")
    cout << "Привет, Мир!" << endl;
}
Ответ написан
Комментировать
@pantoriy
Можно поставить юникод utf8 system("chcp 65001>nul"); Но тогда все строки придётся предварять префиксом u8. Иначе поставьте 1251. Но это тоже вопрос если вы откуда-то тащите строки и они у вас мультибайтовые а потом перегоняются в консоль то вам придётся устанавливать кодировку utf8...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы