• 4547阅读
  • 0回复

[提问]用中文登录mysql失败,为什么? [复制链接]

上一主题 下一主题
离线fzx374
 

只看楼主 倒序阅读 楼主  发表于: 2011-05-22
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
用英文很正常,很汉字为什么不成功呢?
以"中国人"为例子,命令行下>mysql -u 中国人 -p666666 --default-character-set=utf8 成功
源码如下:

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

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    const char *cn = "utf8";
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName(cn));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName(cn));
    QTextCodec::setCodecForTr(QTextCodec::codecForName(cn));

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("mysql");    //mainwindow的AfterLogin()中换作自己的数据
    db.setUserName("中国人");        //不成功
    //db.setUserName("zgr");             //OK
    db.setPassword("666666");

    if (db.open()) {
        QMessageBox::information(0,"message","is OK");
    }
    else  {
        QMessageBox::critical(0,"message",db.lastError().text());
    }

    return 0;
}

快速回复
限100 字节
 
上一个 下一个