• 5554阅读
  • 3回复

[提问]QString与char *的转换? [复制链接]

上一主题 下一主题
离线zhou30924852
 

只看楼主 正序阅读 楼主  发表于: 2014-04-24
用C写的sqlite3数据库  C文件中定义结构体

typedef struct usr_info
{
        char u_usr[20];
        char u_pwd[50];
}USR;
在QT中

USR usr_info;
USR usr_info2;

this->usr=ui->lineEdit_Usr->text();this->password=ui->lineEdit_Password->text();
strcpy(usr_info.u_usr,this->usr.toAscii().data());
strcpy(usr_info.u_pwd,this->password.toAscii().data());
find_usr_db_get_table(this->usr_infoDb,&usr_info,&usr_info2);通过usr_info查找数据后的信息给usr_info2赋值
打印usr_info2:
QDebug()<<QString(usr_info2.u_usr)
QDebug()<<QString(usr_info2.u_pwd);乱码,该怎么转换?新手求助

离线圣域天子

只看该作者 3楼 发表于: 2014-04-25
QString::fromUtf8() 试过吗?

你存sqlite时放的是什么编码?

我以前用BCB时,操作sqlite用的是它的c函数,对于汉字有一组 XXX_16 的读写方法,必须用它,
否则汉字全是乱码。

不过在Qt下用它自带的驱动,没有出现过乱码的。
离线steven2

只看该作者 2楼 发表于: 2014-04-25
  setlocale(LC_CTYPE, "chs");可以解决qDebug乱码的问题

QTextCodec没有尝试过
离线realfan

只看该作者 1楼 发表于: 2014-04-24
用QTextCodec试试呢
快速回复
限100 字节
 
上一个 下一个