398741905的个人主页

http://www.qtcn.org/bbs/u/178911  [收藏] [复制]

398741905

  • 0

    关注

  • 0

    粉丝

  • 2

    访客

  • 等级:新手上路
  • 总积分:1
  • 保密,1990-05-04

最后登录:2017-08-13

更多资料

日志

qt 文件路径中包含中文打开失败

2017-04-19 17:59
问题描述:qt5.5.1 编译器为mingw ,在打开包含中文路径的照片时,fopen失败
QString filename =QString("E:\\备份\\SqlserverDatabase\\mainwindow.h");
std::string str = filename.toStdString();        const char* exifstr = str.c_str();File *fp = fopen(exifstr,"r");
if (fp != NULL) {
        qDebug()<<"==============================";
        int st = fseek(fp, 0, SEEK_END);
        qDebug()<<"tell me the file size " <<ftell(fp);
    } else {
        qDebug()<<"xxxxxxxxxxxxxx\n";
    }
    fclose(fp);
总是失败;

解决方案:
QByteArray arr = QFile::encodeName(QString("E:\\备份\\SqlserverDatabase\\mainwindow.h"));

    FILE *fp = fopen(arr.constData(), "r");
    if (fp != NULL) {
        qDebug()<<"==============================";
        int st = fseek(fp, 0, SEEK_END);
        qDebug()<<"tell me the file size " <<ftell(fp);
    } else {
        qDebug()<<"xxxxxxxxxxxxxx\n";
    }
    fclose(fp);


将目录用QFile的encodeName进行编码,在arr.constData()转化为const char*  

分类:默认分类|回复:0|浏览:127|全站可见|转载
 

下一篇: 数组的替代品 模板类vector和array

上一篇:

Powered by phpwind v8.7 Certificate Copyright Time now is:09-24 14:35
©2005-2016 QTCN开发网 版权所有 Gzip disabled