Qt的默认编码是utf-8,而mysql的编码是在安装数据库(或后续可更改)就时设置的。有时候两者可能不一样,我们不可能去为了匹配Qt而去更改MYSQL的编码(确实可以更改)。所以只能在打开数据库连接操作的时候设置编码了,即在QSqlDatabase对象调用open()方法之后设置。
设置方法为:
sqldb.exec("SET NAMES 'XXXX'");
注意:sqldb是一个QSqlDatabase对象,XXXX是MYSQL数据库的编码名称,如我的就是db.exec("SET NAMES 'GBK'");
运行截图:
(1)没有设置前(中文乱码)
(2)设置之后(中文显示正常)