我试图通过Web服务捕获一些数据,但遇到以下问题。通过获取包含特殊字符(“Español”)的字符串,获得的文本不正确(“ Espa \ u00f1ol”)。

我尝试通过Wireshark验证并验证数据到达服务。数据到达显示为“Español”。

我目前使用的代码如下:

QNetworkRequest req ( url );
req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

QNetworkReply *reply = this->wsClient->get( req );
QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this,
SLOT(onError(QNetworkReply::NetworkError)));

QEventLoop loop;
connect(this->wsClient, SIGNAL(finished(QNetworkReply *)), &loop,SLOT(quit()));
loop.exec();

if (this->pRespNetwork->error() == QNetworkReply::NoError){
   QString jsonData(this->pRespNetwork->readAll());
   qDebug() << jsonData;
}


我希望你能帮助我。

谢谢。

最佳答案

在main.cpp中添加以下行:(假设Qt 4)

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

关于c++ - Qt QNetworkReply不正确的字符集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28764454/

10-10 03:46