• 4787阅读
  • 1回复

[提问]为什么Qt4 + mysql5,以汉字登录mysql失败? [复制链接]

上一主题 下一主题
离线fzx374
 

只看楼主 倒序阅读 楼主  发表于: 2011-04-04
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
//同样情况下,英文正常
//汉字情况下,命令行终端方式, ODBC都能登录正常

#include <QApplication>
#include <QTextCodec>
#include <QtSql>
#include <QtGui>
#include <QObject>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    //user表user字段字符集设置为utf8,命令行登录正常,也设置过gbk
    //命令行下:mysql -u 中国人 -p666666 --default-character-set=gbk //成功
    
    char *code ="UTF-8";    //GBK,codeForLocal()等都不行
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName(code));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName(code));
    QTextCodec::setCodecForTr(QTextCodec::codecForName(code)); //在这个位置添加这行代码

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName(QObject::tr("localhost"));
    db.setDatabaseName("mysql");
    db.setUserName("中国人");    //  db.setUserName(QObject::tr("zg"));    //成功
    db.setPassword("666666");
    if (db.open()) {
        QMessageBox::information(0,"OK","成功");
        app.quit();
    }
    else {
        QMessageBox::critical(0,"错误","sorry");
        app.quit();
    }
    //return app.exec();
}
离线fzx374

只看该作者 1楼 发表于: 2011-04-05
为什么就没有回信呢?是太容易么?是太生僻么?
快速回复
限100 字节
 
上一个 下一个