当前位置: 代码迷 >> QT开发 >> Qt 网络 reply->readAll() 失去乱码
  详细解决方案

Qt 网络 reply->readAll() 失去乱码

热度:696   发布时间:2016-04-25 04:21:19.0
Qt 网络 reply->readAll() 得到乱码
如题,已经在main中设置了 
QTextCodec *codec = QTextCodec::codecForName("UTF-8"); //文本为GB2312编码
    QTextCodec::setCodecForLocale(codec);       //设置本地编码
    QTextCodec::setCodecForCStrings(codec);     //设置字符串编码
    QTextCodec::setCodecForTr(codec);           //设置使用tr内的编码

,正常显示tr中的中文,但是网络得到的就是乱码。
 QTextCodec * codec = QTextCodec::codecForName("utf8");
    webContent = codec->toUnicode(reply->readAll());
这样也是乱码,求解决。
------最佳解决方案--------------------
    QFile file_w(DATA_PATH + QString("helperweb.html"));
    file_w.open(QIODevice::WriteOnly 
------其他解决方案--------------------
 QIODevice::Text);
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextStream ts(&file_w);
    ts<<codec->toUnicode(reply->readAll())<<endl;
    file_w.close();

这是我把下载的网页写文件的一段代码,网页也是GB2321的
------其他解决方案--------------------
引用:
C/C++ code??123456    QFile file_w(DATA_PATH + QString("helperweb.html"));    file_w.open(QIODevice::WriteOnly