sam喵喵 发表于 2021-5-7 16:35

求组QT读取Mysql数据库内容显示乱码

本帖最后由 sam喵喵 于 2021-5-8 13:35 编辑

QT: 5.15.2 X64
SQL: 5.6.2 X64
数据库编码是UTF-8
QT编码也是UTF-8
先是Navicat里面中文显示???,后经过转换编码utf-8,中文正常显示。
实际在编辑连接时候改为utf-8后,设计表查看字段编码仍让是latin格式,但是可以显示中文,后面手动改中文字段编码为utf-8.
QT读取数据库中的中文显示乱码
QT操作数据库输入中文也显示乱码

网上查到setCodeC( QTextCodec::codecForName("UTF-8") );//仍然显示乱码


问题已解决,感谢52.


第一个卡在自编SQL驱动,
参照网上资料,包含mysql 里面include
LIB库必须要指明xxxx.dll,不能包含整个lib库,会有一堆报错
include和lib路径不能有中文或者空格,SQL默认安装有时候有空格。
我是直接把include和Lib拷出来放到上一级目录再包含的。
第二个卡在这里中文乱码。
这里总结以下:
除了SQL,QT默认要设置成utf8,数据库最好直接删了在QT里面重新创建,这样所有数据编码都已经是UTF8。
Navicat创建的数据QT读取有问题,QT里创建的数据Navicat显示乱码不用管,QT可以正常读出来。
以下两项
sql_client =GBK
sql_connection=GBK

EVZE 发表于 2021-5-7 16:38

连接数据库的 连接串 设置成utf8 了吗

sam喵喵 发表于 2021-5-7 17:05

EVZE 发表于 2021-5-7 16:38
连接数据库的 连接串 设置成utf8 了吗

连接属性里面-》高级-》编码utf-8,这里已经修改过

sam喵喵 发表于 2021-5-7 17:15

感谢himly版主帮忙处理!

Takitooru 发表于 2021-5-7 17:48

连接数据库的时候加上这句set NAMES UTF8试试

sam喵喵 发表于 2021-5-7 22:01

Takitooru 发表于 2021-5-7 17:48
连接数据库的时候加上这句set NAMES UTF8试试

还是乱码,刚去数据库里面也都设成UTF8,还是乱码,而且乱码的形状都没变

sam喵喵 发表于 2021-5-8 13:16

Takitooru 发表于 2021-5-7 17:48
连接数据库的时候加上这句set NAMES UTF8试试

问题已经解决,好像只有在QT编辑器里插入的中文数据才能在QT界面读出来
所以把SQL语句整个搬入QT编辑器执行,中文还只能以单引号方式用Insert语句插入,用list可以用双引号方式插入
但是在Navicat里面显示??。
页: [1]
查看完整版本: 求组QT读取Mysql数据库内容显示乱码