Как захватыать поток процесса вместе с ANSI кодировкой в Qt C++

Пытаюсь сделаю терминал в форме, от сюда взят инструмент, удалось реализовать и запускать процессы, которые отображают своё выполнение в текстовом поле на форме. небольшая часть кода:

    void Process::readResult(){
    emit lineRead(process->readAllStandardOutput());
    emit lineRead(process->readAllStandardError());

}

void Process::writeQString(QString str) {
    if (process->state() == QProcess::ProcessState::Running)
        process->write(str.toUtf8());
}

ну и отображение:

void MainWindow::getProcessLine(QByteArray output)
{

    QTextCodec *codec = QTextCodec::codecForName("cp-866");
    QString pStr = codec->toUnicode(output.data());
    ui->plainTextEdit->appendPlainText(pStr.trimmed());
}

Соответственно если я использую команды, в которых результат использует кодировку ANSI, то я в текстовом поле получаю все эти символы кодировки в перемешку с основным текстом.

[33m Device #1: Not a native Intel runtime..[0m [33m You can use but do not report related errors.[0m Started: Tue [2K Stopped: Tue [31mNo devices found/left.[0m

такие символы как: [0m [33m и так далее. Подскажите, пожалуйста, как исключить данные символы из вывода? Или есть возможность отображать вывод с данной кодировкой в текстовом поле? Спасибо.


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