Qt 网络 reply->readAll() 得到乱码

MarsZ 2012-12-03 12:38:07
如题,已经在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());
这样也是乱码,求解决。
...全文
707 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
MarsZ 2012-12-04
  • 打赏
  • 举报
回复
QTextCodec * codec = QTextCodec::codecForName("gbk");
    webContent = codec->toUnicode(reply->readAll());
这样就解决了。但是我在main中设置的utf8 在这里又要设置gbk,难道就没有一次设置,一劳永逸的方法吗
MarsZ 2012-12-03
  • 打赏
  • 举报
回复
引用 1 楼 storylsl 的回复:
C/C++ code??123456 QFile file_w(DATA_PATH + QString("helperweb.html")); file_w.open(QIODevice::WriteOnly | QIODevice::Text); QTextCodec *codec = QTextCodec::codecForName("UTF-8")……
我先不写文件,qDebug出来一下看到的中文是乱码
我是学友 2012-12-03
  • 打赏
  • 举报
回复
    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的

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧