Qt4 从QString转换为QByteArray时数据丢失

Qt4 从QString转换为QByteArray时数据丢失,qt4,Qt4,我使用QPlainTextEdit作为HTML编辑器,使用QNetworkAccessManager通过HTTP post保存数据 我在使用HTML特殊字符(如&(符号)时遇到数据丢失问题 我正在使用QByteArray构建一个POST请求(如文档中所述) QByteArray postData; qmapiteratori(参数); while(i.hasNext()){ i、 next(); postData .append(i.key().toUtf8()) .append(“=”) .a

我使用QPlainTextEdit作为HTML编辑器,使用QNetworkAccessManager通过HTTP post保存数据

我在使用HTML特殊字符(如&(符号)时遇到数据丢失问题 我正在使用QByteArray构建一个POST请求(如文档中所述)

QByteArray postData;
qmapiteratori(参数);
while(i.hasNext()){
i、 next();
postData
.append(i.key().toUtf8())
.append(“=”)
.append(i.value().toUtf8())
.附加(“&”);
}
remove(postData.length()-1,1);
//请求
QNetworkRequest postRequest=QNetworkRequest(res);
oManager.post(postRequest、postData);

我不是Qt网络编程方面的专家,但您的代码似乎是在重新发明轮子。签出类-它有查询参数、主机、方案等的设置器,可以通过QNetworkRequest直接使用。

我终于找到了使用QUrl和TOENCODE()函数的解决方案,谢谢您的回答。
QByteArray postData;
QMapIterator<QString, QString> i(params);
while(i.hasNext()) {
    i.next();
    postData
        .append(i.key().toUtf8())
        .append("=")
        .append(i.value().toUtf8())
        .append("&");
}

postData.remove(postData.length()-1, 1);

//Do request
QNetworkRequest postRequest = QNetworkRequest(res);
oManager.post(postRequest, postData);