1

我有一个在其中显示在 Linux 中QTextBrowser使用的外部二进制文件的输出内容。QProcess一切都很好!但是大部分内容只是盒子,所以现在缺少 UTF-8 字符编码,我需要告诉QTextBrowser. 有什么办法吗?

编码:

....
processRAM = new QProcess();
processRAM->start("memtester", QStringList() << "1" << "1");
.....
connect(processRAM, SIGNAL(readyRead()),this,SLOT(displayRAMTestOutput()));
......
void MainWindow::displayRAMTestOutput()
{
  textBrowserData->append(Qtring::fromUtf8(processRAM->readAllStandardOutput())));
}  

我添加了字符编码 UTF-8,但我仍然只看到框。我在这里想念什么?

4

1 回答 1

2

可以这样设置内容QTextBrowser

textBrowser->setText(QString::fromUtf8(processOutput)));

编辑:您的“盒子”问题与 UTF8 编码无关。您看到的符号是 memtester 在向控制台显示文本时使用的控制字符。如果不想在 中显示此类字符textBrowser,可以过滤输出:

while(!processRAM->atEnd())
{
    QString out = QString::fromAscii(processRAM->readLine());
    if(!out.contains("\b"))
        textBrowser->append(out);}
}

\b表示退格,它在你的 textBrowser 中显示为框。

于 2015-04-15T05:28:31.877 回答