qt 中文写入mysql_Linux与Windows下QT中使用MySQL中文乱码解决方法

本文介绍了在Linux和Windows环境下,使用QT连接MySQL时遇到的中文乱码问题的解决方案。在Linux下,只需在main函数中设置QTextCodec编码,并在数据库操作前执行“SET NAMES 'Latin1'”。而在Windows下,需要修改QT的MySQL驱动源码,重新编译,并在程序中设置编码,以及在数据库连接后执行“SET NAMES 'GBK'”语句。对于不同数据库编码(如GBK或UTF8),相应调整编码设置。
摘要由CSDN通过智能技术生成

Linux下

这种方法应该是最快捷解决中文乱码的办法了,不用改MySQL的编码,仅限于linux下使用:

1.在QT程序的main.cpp的main函数中QTextCodec```那三句:

intmain(intargc,char*argv[])

{

QApplication a(argc, argv);

QTextCodec *codec = QTextCodec::codecForName("UTF-8");

QTextCodec::setCodecForCStrings(codec);

QTextCodec::setCodecForTr(codec);

MainWindow w;

w.show();

returna.exec();

}

2.在你的程序代码设置数据库后添加一句:  db.exec("SET NAMES 'Latin1'"); //直接使用数据库的latin1编码

以上两步就解决问题了。

Windows下

此方法修改后可以在QT中正常显示中文,也可以通过QT往MYSQL中插入中文并在QT的控件上显示出来。   但通过命令行查看表的内容时,中文直接显示为?。 所以这个办法做了之后就不能在命令行下查看mysql中文内容。

第一步把数据库的编码全部改了很重要!!

在Qt4中使用MySQL4.1及其以上版本中的中文问题解决方法

MySQL4.1及其以上版本中中文问题比较麻烦,有时候在QT中使用会出现问号或者乱码,现在说明一下在Qt中如何正确地配合使用。

先在MySQL中建表,使用中文&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值