• 7258阅读
  • 3回复

[提问]用qt爬取HTML文件,如何解决中文乱码问题 [复制链接]

上一主题 下一主题
离线hxm9065
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-14
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
用QT写了一个返网页html文本并存入一个文件的测试代码,但是爬取下来的文件中文总是乱码,求大神们指点~
MainWindow::~MainWindow()void MainWindow::on_pushButton_clicked(bool){    manager = new QNetworkAccessManager(this);    QString url;    url = http://zh.wikipedia.org/w/index.php?title=上海市&action=edit;   request.setUrl(QUrl(url));reply = manager->get(request);   connect(reply,SIGNAL(readyRead()),this,SLOT(ReadyRead()))    return ;}void MainWindow::ReadyRead(){QString w=reply->readAll();
    QTextCodec *codec2 = QTextCodec::codecForName("GB2312");    //获取系统编码    QTextCodec::setCodecForLocale(codec2);    QTextCodec::setCodecForCStrings(codec2);    QTextCodec::setCodecForTr(codec2);    QFile file1("C:/shanghai.html");    file1.open(IO_ReadWrite);    QTextStream stream1(&file1);    stream1.setCodec(codec2);
    stream1<<w;
}
离线wxj120bw

只看该作者 1楼 发表于: 2011-12-14
回 楼主(hxm9065) 的帖子
服务器返回的网页编码由http协议中Accept-Charset属性决定 不是根据你的系统决定
离线roywillow

只看该作者 2楼 发表于: 2011-12-14
我记得QTextCodec有个codecForHtml静态函数,那个会返回参数对应的编码
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线大法师
只看该作者 3楼 发表于: 2011-12-15
肯定是编码的问题,现在很多网站采用UTF-8编码
快速回复
限100 字节
 
上一个 下一个