Qt QTcpSocket QByteArray / QString问题是特殊字符和正确的语法

时间:2012-07-15 01:18:00

标签: newline quotes qtcpsocket qbytearray

我在Qt中遇到一些特殊字符,2是引用和换行符。我使用telnet连接到服务器,由于某种原因,服务器会自动在输入的开头和结尾添加引号。我在删除引号和换行符时遇到问题。

void MyClient::readyRead()
{
    if(WaitingForString())
    {
        if(socket->canReadLine())
        {
            qDebug() << "Ready to read, string expected";
            qDebug() << socket->readLine();
        }
    }
    else 
    {
        if(socket->canReadLine())
        {
            qDebug() << "Ready to read line, number expected";
            QString data = QString(socket->readLine().replace("\n", "").replace("\"", "");
            qDebug() << data;
            waitForStrings(1);
        }
    }
}

更换换行符的问题如下所述:

我来自telnet的输入:你好

程序替换换行符后:“ello (带引号的正常输出将为“Hello”)

替换引号完全没有效果。我也试过使用双反斜杠,因为它是一个RegEx,但两者仍然有相同的问题,就像有一个。感谢帮助,谢谢。

编辑:结果是qDebug的格式化,而不是使用Telnet或其他任何结果。

1 个答案:

答案 0 :(得分:1)

您确定新行和引号不仅仅是使用qDebug()的效果吗?

QDebug总是在字符串周围加上引号并在之后写一个换行符