前段时间开发数据库几个模块一直预留着一个数据库内和程序界面上中文乱码的问题未解决,以前做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学生管理系统.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 课程实验 ...
C++ 课设作业:Qt+MySQL的学生管理系统.zip C++ 课设作业:Qt+MySQL的学生管理系统.zip C++ 课设作业:Qt+MySQL的学生管理系统.zip C++ 课设作业:Qt+MySQL的学生管理系统.zip C++ 课设作业:Qt+MySQL的学生管理系统...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为...基于QT+mysql+C++实现的自助餐管理系统源码+项目说明.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 ...
基于LinuxC+QT+MySQL的机票网络售票模拟系统源码.zip基于LinuxC+QT+MySQL的机票网络售票模拟系统源码.zip基于LinuxC+QT+MySQL的机票网络售票模拟系统源码.zip基于LinuxC+QT+MySQL的机票网络售票模拟系统源码.zip基于...
在本文中,我们将深入探讨如何在Visual Studio 2012 (VS2012) 集成开发环境中利用QT 5.5框架进行串口通信开发。串口通信是一种基本的硬件接口技术,广泛应用于设备之间的数据传输,如嵌入式系统、工业控制设备等。...
基于C++的Qt+mysql实现医院信息管理系统源码+数据库脚本(高分项目)基于C++的Qt+mysql实现医院信息管理系统源码+数据库脚本(高分项目)基于C++的Qt+mysql实现医院信息管理系统源码+数据库脚本(高分项目)基于C++...
基于C++、Qt+mysql实现医院信息管理系统源码+数据库脚本(高分项目)基于C++、Qt+mysql实现医院信息管理系统源码+数据库脚本(高分项目)基于C++、Qt+mysql实现医院信息管理系统源码+数据库脚本(高分项目)基于C++...
【标题】"基于C++&QT+MySQL+OpenCV的车牌识别搭建停车场管理系统"是一个综合性的计算机项目,它涵盖了多种技术栈的运用,主要用于实现一个高效、可靠的智能停车管理解决方案。这个系统的主要特点在于利用C++作为编程...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,...基于LinuxC+QT+MySQL写的机票网络售票模拟系统源码+项目说明.zip
### Ubuntu14.04 + Qt5.5 利用搜狗输入法输入中文的解决办法 #### 前言 在使用Ubuntu14.04操作系统时,结合Qt5.5开发工具进行软件开发的过程中,可能会遇到中文输入的问题。搜狗输入法是一款优秀的中文输入工具,但...
基于QT+MYSQL的点餐系统源码(全部资料).zip 95分以上高分必过项目,下载即用无需修改,项目完整,确保可以运行。 基于QT+MYSQL的点餐系统源码(全部资料).zip 95分以上高分必过项目,下载即用无需修改,项目...
QT+MySQL 图书管理系统搭建教程 QT 是一个跨平台的 C++ 应用程序开发框架,广泛用于构建图形用户界面(GUI)。而 MySQL 是一种流行的开源关系型数据库管理系统,适用于各种规模的应用。将两者结合,我们可以创建一...
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 5.5驱动是将Qt框架与MySQL数据库连接的关键组件,允许Qt应用程序与MySQL 5.5版本的数据库进行交互。这个驱动程序的创建和优化可能涉及到多个技术层面,包括C++编程、Qt库的理解以及SQL语言的运用。 首先,...