我试图通过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/