Задать вопрос
@forwardpaul

В Терминал С++ выводятся неизвестные символы?

Когда в терминал выводится РУССКИЙ текст (пишу в VSCode) на С++ пишутся какие-то непонятные символы (см. скриншот)
00c275213739433ae0e6680c41f1b2a5.jpg
Вроде пытался поменять кодировку, но всё равно символы остаются.
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unreal Engine + ИИ
    9 месяцев
    Далее
  • Stepik
    Профессия: Разработчик C++ (Junior)
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 3
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Как распознать кракозябры:
670d4c201254a086434124.png
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
SetConsoleOutputCP(65001); в начало main() — или chcp 65001 в терминале. В PowerShell chcp иногда не работает, там нужен [Console]::OutputEncoding = [Text.Encoding]::UTF8.
Ответ написан
Комментировать
LaptevVV
@LaptevVV
Преподаватель ИТ-дисциплин в вузе; программист С++
Очевидно, программа писалась в Windows и в ней есть вывод русских символов в консоль (а не в терминал).
Выше приведена схема. Новичку может быть непонятна.
1. В VSCode вроде бы по умолчанию установлена кодировка UTF-8, в которой русские буквы закодированы 2 байтами. Поэтому в исходном коде на С++ все английское занимает 1 байт, а все русское - два.
2. В консоли по умолчанию установлена кодировка cp-866

Чтобы не подключать windows.h, можно обойтись почти стандартными средствами Си
Первой строкой в main() напиши вызов стандартной функции СИ:
system("chcp 65001"); // -- запуск команды командного процессора для смены кодовой страницы в консоли
Тогда в консоли установится кодировка UTF-8 и русскоязычные константы должны выводится нормально
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы