前段时间开发数据库几个模块一直预留着一个数据库内和程序界面上中文乱码的问题未解决,以前做asp.net、JSP,J2EE、C#时候知道,数据库中文乱码一般都是编码问题导致的,问题不大,只需要数据库客户端和服务端的编码一直就可以了。
项目的开发环境是VS2008+Qt4.7+Win7
数据库管理软件为Navicate 8 for Mysql。
出现的问题如下,界面中读取数据库中文数据乱码:
解决方法实际上是参考了网上的例子:【转】QT中使用MYSQL中文乱码解决方法
----------------------------------------------------------------------
真正的解决过程如下:
1、数据库、数据表、数据项编码全部更改为GB2312/GBK
2、修改Qt驱动代码,重新编译Qt
Mysql5.5驱动,实现更改QtextCode
3、修改项目全局编码格式。
--------------------------------------------------------------------------------
详细过程如下:
步骤1数据库、数据表、数据项编码全部更改为GB2312/GBK截图
步骤2修改Qt驱动代码,重新编译Qt Mysql5.5驱动,实现更改QtextCode截图:
步骤3、修改Qt全局字符编码:
// 以下部分解决中文乱码
QTextCodec *codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
// 以上部分解决中文乱码
最终结果成功如下:
Navicate中的数据:
程序界面中的数据截图:
注意:
注(1)貌似在Qt连接数据库的时候修改编码,并没有多大作用。
/**
*函数介绍:创建数据库连接
*输入参数:
*返回值:无
*/
bool
DataAccess::createConnection()
{
QSqlDatabase db =
QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("10.3.2.84"); //数据库服务器
db.setDatabaseName("petct"); //数据库名
db.setUserName("admin"); //登录名
db.setPassword("admin"); //密码
if(!db.open ())
{
QMessageBox::warning (0,
"Warning", "Failed to open database!");
return false;
}
//不用设置
//db.exec("SET NAMES 'GBK'");
//
return true;
}
注(2)、貌似在第二步中重新编译Qt-mysql的驱动也没多大用。至少我后期反复试验后只进行了上述两步就解决了乱码问题。我在另外一个笔记本上也专门测试过增删改查,中文一切正常
- 大小: 108.7 KB
- 大小: 35.4 KB
- 大小: 90.4 KB
- 大小: 77.5 KB
- 大小: 87.8 KB
分享到:
相关推荐
清晰的QT+mysql学生管理系统 清晰的QT+mysql学生管理系统 清晰的QT+mysql学生管理系统 清晰的QT+mysql学生管理系统 清晰的QT+mysql学生管理系统 清晰的QT+mysql学生管理系统 清晰的QT+mysql学生管理系统 清晰的QT+...
基于QT+mysql学生管理系统.zip基于QT+mysql学生管理系统.zip 基于QT+mysql学生管理系统.zip基于QT+mysql学生管理系统.zip 基于QT+mysql学生管理系统.zip基于QT+mysql学生管理系统.zip 基于QT+mysql学生管理系统.zip...
基于Qt+mysql数据库的图书管理系统.zip基于Qt+mysql数据库的图书管理系统.zip 基于Qt+mysql数据库的图书管理系统.zip基于Qt+mysql数据库的图书管理系统.zip 基于Qt+mysql数据库的图书管理系统.zip基于Qt+mysql数据库...
基于QT+mysql搭建垃圾分类查询系统.zip基于QT+mysql搭建垃圾分类查询系统.zip 基于QT+mysql搭建垃圾分类查询系统.zip基于QT+mysql搭建垃圾分类查询系统.zip 基于QT+mysql搭建垃圾分类查询系统.zip基于QT+mysql搭建...
基于QT+MYSQL实现自习室预定系统.zip基于QT+MYSQL实现自习室预定系统.zip 基于QT+MYSQL实现自习室预定系统.zip基于QT+MYSQL实现自习室预定系统.zip 基于QT+MYSQL实现自习室预定系统.zip基于QT+MYSQL实现自习室预定...
C++ 课设作业:Qt+MySQL的学生管理系统.zip C++ 课设作业:Qt+MySQL的学生管理系统.zip C++ 课设作业:Qt+MySQL的学生管理系统.zip C++ 课设作业:Qt+MySQL的学生管理系统.zip C++ 课设作业:Qt+MySQL的学生管理系统...
VS2012 + QT5.5 框架下的串口开发,示例中简单的介绍了串口的收发机制,简单易懂,亲测有效,欢迎下载!
课程实验 使用QT+Mysql 实现学生选课管理系统.zip 课程实验 使用QT+Mysql 实现学生选课管理系统.zip 课程实验 使用QT+Mysql 实现学生选课管理系统.zip 课程实验 使用QT+Mysql 实现学生选课管理系统.zip 课程实验 ...
课程设计作业:基于QT+MySQL实现的图书管理系统.zip 课程设计作业:基于QT+MySQL实现的图书管理系统.zip 课程设计作业:基于QT+MySQL实现的图书管理系统.zip 课程设计作业:基于QT+MySQL实现的图书管理系统.zip 课程...
课程设计:基于C++& QT+mysql实现的航空订票系统.zip 课程设计:基于C++& QT+mysql实现的航空订票系统.zip 课程设计:基于C++& QT+mysql实现的航空订票系统.zip 课程设计:基于C++& QT+mysql实现的航空订票系统.zip ...
QT+mysql 图书管理系统搭建
1.Ubuntu14.04 + Qt5.5利用搜狗输入法输入中文的解决办法;2已验证,可使用;3、如有问题,联系chanior2005@gmail.com
基于QT+MYSQL的点餐系统源码(全部资料).zip 95分以上高分必过项目,下载即用无需修改,项目完整,确保可以运行。 基于QT+MYSQL的点餐系统源码(全部资料).zip 95分以上高分必过项目,下载即用无需修改,项目...
Qt+Visualstudio的中文乱码总结: 1、Qt4.7+VS2008,通过如下方法: .... 2、Qt5.2+VS2010 打入补丁 VS2010sp1,.... 3、 Qt5.2+ VS2012 不支持 #pragma execution_character_set ("utf-8") .... 4、Qt5.2+VS2013 ...
基于QT(+MySQL)的学生信息管理系统的开发
详细的介绍了如何用Qt4.8编译mysql5.5,图文并茂
qt+mysql 制作简易的图书管理系统 有注释 使用c++在qt5.8平台开发;ui设计使用了QT自带的UI工具,自动生成的UI代码也在压缩包中;
MySql 1、管理人员信息表(username password(status)) 2、客户信息管理 3、客户存款信息表 4、流水信息表 1、登录界面(不允许重复登录) username password 2、主要功能 1)开户 创建新的客户账号 2)存款 ...
C++实现基于QT+Mysql的学生信息管理系统源码+数据库(95分以上大作业项目).zip 高分设计项目,代码完整下载可用,纯手打高分设计,可作为期末大作业和课程设计,小白也可实战。 C++实现基于QT+Mysql的学生信息管理...
基于Qt+MYSQL的预约停车系统+会员办理+充值缴费功能源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心下载使用~ 基于Qt+MYSQL的预约停车系统+会员办理+充值缴费功能源码,适合毕业设计、...