Как установить правильную кодировку в QProcess?

Проблема в том, что QProcess считывает вывод процесса, однако, если там есть русские символы, он их отображает в виде вопросительных знаков либо других иероглифов (зависит от того, какие манипуляции с ним проводить). Итог один: английский язык - отлично, русский - плохо.

Программа, из которой он читает, написана на питоне, там, вроде, с кодировкой всё отлично (так как программа сама по себе работает нормально).

Подскажите, как сделать так, чтобы QProcess читал русские символы (желательно, чтобы он их ещё и записывал)

Этот вопрос - продолжение предыдущуего, в нём вся конкретика. Там же в комментариях я вёл размышления: Почему QProcess выводит некорректный результат?


Ответы (1 шт):

Автор решения: GRUB_666

Целый день мне на это понадобился. Методом проб и ошибок, а так же рытья в интернете и документации я смог решить эту задачу.

Для ввода русских символов в поток:

QString str = "Нужная строка\n";
std::string tstring = str.toLocal8Bit().data();
const char *str_char = tstring.c_str(); //str_char уже можно записывать в QProcess

Для вывода русских символов из потока:

qDebug() << QString::fromLocal8Bit(process.readAll());

Всё. Решено.

→ Ссылка