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

Некорректное отображение кириллицы?

При запуске кода в VS Code кириллица отображается иероглифами. Бета-тест Utf-8 в windows отключён, т.к. в другой программе -- Access всё отображается корректно, а с включением перестает даже не запускается. Но так же с включением бэтки в VS Code кириллица отображается корректно. Как можно пофиксить чтобы не приходилось постоянно включать/выключать бета-тест UTF-8, под каждую программу?
6903ac927d968439519788.png
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    DevOps-инженер
    6 месяцев
    Далее
  • Нетология
    1С-программист
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
@66demon666
Сетевой админ, АТС-админ
Сменить кодировку в vsCode. Не благодари.
Ответ написан
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Как распознать кракозябры:
670d4c201254a086434124.png
И далее исправляете кодировку либо в источнике (терминале) либо в VSCode.
Ответ написан
Комментировать
Проблема в том, что твоя программа выводит текст в кодировке utf-8, так как файл с кодом имеет такую кодировку, а в консоли на Винде по-умолчанию используются восьмибитные кодовые страницы (для русского языка - это cp866 и cp1251). vscode не виноват.

Решений несколько:
1. Поменять кодировку файла
2. Хранить текст для вывода в консоль в нужной кодировке
3. Конвертировать текст в нужную кодировку перед выводом в консоль
4. Поменять кодировку в консоли при помощи chcp на ту, которую использует программа.
5. Поменять кодировку консоли изнутри программы при помощи setlocale или SetConsoleOutputCP, SetConsoleCP

С моей точки зрения, самым правильным вариантом будет последний.
Просто добавь в самое начало main вот такую строку:
std::setlocale(LC_ALL, "ru_RU.UTF-8");
И ещё добавь include:
#include <locale>
Но обрати внимание, чтобы кодировка файлов оставалась utf-8. Если ты такую строку добавишь в случае, когда у тебя код имеет кодировку 1251 - при выводе снова будут кракозябры.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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