• 4635阅读
  • 4回复

[提问]mysql中文用户登录问题 [复制链接]

上一主题 下一主题
离线fzx374
 

只看楼主 倒序阅读 楼主  发表于: 2011-03-10
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
mysql英文用户名(比如root,fzx)登录正常,显示正常。但中文用户(比如 王华) 不能登录,分析主要是字符集问题
我试用了几种字符集组合(比如mysql字符集设置为gbk,utf8等),
在main()中,增加了
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

在ligin()中,
QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");

db.setDatabaseName("text");
db.setUserName("王华");
db.setPassword("123456");
if(db.open()){......}
结果失败,而db.setUserName("wanghua");//成功为什么?
都不成功。

[ 此帖被fzx374在2011-03-10 12:19重新编辑 ]
离线fzx374

只看该作者 1楼 发表于: 2011-03-10
怎么没有人回应?
离线fzx374

只看该作者 2楼 发表于: 2011-03-10
程序运行中,我查看了mysql的字符集,其中两个为:
craracter_set_client = utf8;
craracter_set_connect = utf8;
不管怎么设置字符集,它们两个都不变。可在QSqlDatabase中,又找不到指定字符集的地方,怎样解决呢?
离线fzx374

只看该作者 3楼 发表于: 2011-03-11
坛主,急求支援
离线fzx374

只看该作者 4楼 发表于: 2011-03-14
一直等待高手回答。
目前,为了解决此,我绕了个圈,先换成中的unicode码(十六进制),以此作用户名,登录之后再还源。
不要告诉我,增加一个数据库,两列:一列代码,一列名字。我不喜欢这样。
快速回复
限100 字节
 
上一个 下一个