Задать вопрос
Работаю, обучаюсь заочно.

В начале карьеры писал на С++, используя Qt. В настоящий момент веду разработку web-приложения на NodeJS и Vue.

Уровень
английского - слабый Pre-Intermediate. Читаю техническую литературу
(иногда посматривая в словарь), с разговорным чуть хуже.
Контакты
Местоположение
Казахстан

Наибольший вклад в теги

Все теги (9)

Лучшие ответы пользователя

Все ответы (3)
  • Как в qt-creator вывести в консольном приложении русский текст вместо кракозябр (см картинка)?

    dilepremon
    @dilepremon
    Студент-заочник, учусь, работаю
    Хм, 3 минуты гугла и первая ссылка выдали это:

    "Хотя уже давно разработан единый стандарт кодирования символов — Unicode, в Windows до сих пор используются несколько кодировочных таблиц, а именно — cp866, cp1251. Использование нескольких таблиц кодирования символов и является причиной появления козябликов, вместо кириллицы в консоли.

    Так уж повелось, в командной строке Windows кодировка символов соответствует стандарту cp866. То есть все символы в командной строке Windows закодированы по кодировочной таблице cp866. Причём поменять кодировку в командной строке Windows нельзя. Просмотреть стандарт кодирования символов в консоли можно, с помощью команды GRAFTABL

    Решить данную проблему можно только одним способом — перед тем, как передать текст в консоль, необходимо его перекодировать в стандарт кодирования символов cp866."

    и это:

    "Для ввода/вывода используйте текстовые потоки, для потока следует установить кодек, транслирующий текст в кодировку, применяемую в консоли. Поэтому для вашей системы имя кодека может быть и не "cp866". Приведенный ниже пример предполагает использование Qt 5, а кодировка исходного текста программы - UTF-8"

    #include <QCoreApplication>
    #include <QTextStream>
    #include <QTextCodec>
     
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
     
        QTextStream outStream(stdout);
        outStream.setCodec(QTextCodec::codecForName("cp866"));
        outStream << QString("Русский текст в консоли") << flush;
     
        return a.exec();
    }


    P.S. Если по какой-то причине не используются Qt библиотеки, имеется другой вариант в этой статье.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (10)