以"中国人"为例子,命令行下>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;
}