QT访问access中文乱码的问题



  • QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb18030"));
    (这三个我拿UTF-8和gb18030反复组合了都不行)

    SoruceTable->setEnabled(true);
    //读取access数据库代码
    db = QSqlDatabase::addDatabase("QODBC");
    QString filePath = SoruceFile->text();
    QString dsn = QString("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%1").arg(filePath);
    db.setDatabaseName(dsn);

            if(!db.open())
            {
                QMessageBox::about(0, QObject::tr("读取文件错误"),db.lastError().text());
            }
            else
            {
                //获取全部表名
                SoruceTable->addItems(db.tables());
            }
    

    http://pan.baidu.com/disk/home这里有代码和数据库,请高手指教



  • 下载不到你的源码。
    一般将源码保存成UTF-8,将几个TextCodec都设成UTF-8,就不会有乱码了。



  • 你的链接...是打开个人网盘的啊
    另外数据库里边的中文是用什么编码的呢?
    调整下就行了


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.