Как захватыать поток процесса вместе с 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 и так далее. Подскажите, пожалуйста, как исключить данные символы из вывода? Или есть возможность отображать вывод с данной кодировкой в текстовом поле? Спасибо.