新浪微博
腾讯微博
会员列表
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
下拉
用户名
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
论坛
Qt下载
作品展
群组
个人中心
捐赠、管理与开发
邮件订阅
帖子
文章
日志
用户
版块
群组
帖子
搜索
QTCN开发网
>
Qt中文处理
>
Qt3 在 MySQL 数据库中不能存储汉字!
发帖
回复
返回列表
新帖
13294
阅读
13
回复
[提问]
Qt3 在 MySQL 数据库中不能存储汉字!
[复制链接]
上一主题
下一主题
离线
sflute
UID:1293
注册时间
2005-10-21
最后登录
2008-11-21
在线时间
82小时
发帖
63
搜Ta的帖子
精华
0
金钱
595
威望
101
贡献值
0
好评度
52
访问TA的空间
加好友
用道具
新手上路
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
加关注
发消息
只看楼主
倒序阅读
楼主
发表于: 2007-03-22
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
我用的是VC6.0+Qt3在Windows下开发,用的数据库是MySQL,我用程序在MySQL数据库中插入新的记录,如果数据中有汉字,插入后在数据库中只看到一串问号,请问如何解决呢?
共
条评分
回复
举报
分享到
淘江湖
新浪
QQ微博
QQ空间
开心
人人
豆瓣
网易微博
百度
鲜果
白社会
飞信
离线
XChinux
UID:2
注册时间
2004-11-08
最后登录
2025-06-18
在线时间
7022小时
发帖
11243
搜Ta的帖子
精华
61
金钱
148932
威望
9968
贡献值
702
好评度
8190
访问TA的空间
加好友
用道具
总版主
加关注
发消息
只看该作者
1楼
发表于: 2007-03-22
连接上数据库后,执行
SET NAMES 'gbk';
这条SQL语句。
共
条评分
二笔 openSUSE Vim N9 BB10
XChinux@163.com
网易博客
腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
回复
举报
离线
sflute
UID:1293
注册时间
2005-10-21
最后登录
2008-11-21
在线时间
82小时
发帖
63
搜Ta的帖子
精华
0
金钱
595
威望
101
贡献值
0
好评度
52
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
2楼
发表于: 2007-03-23
还是不行。我想不是MySQL的问题,已经存储在MySQL中的汉字数据我可以用Qt取过来,但是用Qt写入汉字数据就不行了。
共
条评分
回复
举报
离线
sflute
UID:1293
注册时间
2005-10-21
最后登录
2008-11-21
在线时间
82小时
发帖
63
搜Ta的帖子
精华
0
金钱
595
威望
101
贡献值
0
好评度
52
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
3楼
发表于: 2007-03-28
搞不定了,请求支援...
共
条评分
回复
举报
离线
minifat
UID:3284
注册时间
2006-01-16
最后登录
2018-01-23
在线时间
2小时
发帖
22
搜Ta的帖子
精华
0
金钱
238
威望
46
贡献值
0
好评度
21
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
4楼
发表于: 2007-03-28
app.setDefaultCodec( QTextCodec::codecForName("GBK") );
string strcmd = string( "insert into CDB_AREAS(ID,valid,Area_No,Area_Name) values(1,1,1,'全网')" );
QSqlQuery qret = m_pSqlDatabase->exec( strcmd.c_str() );
共
条评分
回复
举报
离线
sflute
UID:1293
注册时间
2005-10-21
最后登录
2008-11-21
在线时间
82小时
发帖
63
搜Ta的帖子
精华
0
金钱
595
威望
101
贡献值
0
好评度
52
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
5楼
发表于: 2007-03-28
我发现原因了,是MySQL数据库采用了UTF-8编码。我应该如何做呢?
共
条评分
回复
举报
离线
minifat
UID:3284
注册时间
2006-01-16
最后登录
2018-01-23
在线时间
2小时
发帖
22
搜Ta的帖子
精华
0
金钱
238
威望
46
贡献值
0
好评度
21
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
6楼
发表于: 2007-03-28
mysql进去,status显示的结果贴一下?
共
条评分
回复
举报
离线
sflute
UID:1293
注册时间
2005-10-21
最后登录
2008-11-21
在线时间
82小时
发帖
63
搜Ta的帖子
精华
0
金钱
595
威望
101
贡献值
0
好评度
52
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
7楼
发表于: 2007-04-04
对不起,应该如何操作呢?我对MySQL不是太了解。
共
条评分
回复
举报
离线
hehui
UID:2095
注册时间
2005-11-24
最后登录
2024-10-30
在线时间
258小时
发帖
572
搜Ta的帖子
精华
0
金钱
5817
威望
620
贡献值
0
好评度
574
访问TA的空间
加好友
用道具
骑士
加关注
发消息
只看该作者
8楼
发表于: 2007-04-11
我用的时候可以,但是得用SQL语言!
表名不能用汉字!
不知为何!
共
条评分
回复
举报
离线
XChinux
UID:2
注册时间
2004-11-08
最后登录
2025-06-18
在线时间
7022小时
发帖
11243
搜Ta的帖子
精华
61
金钱
148932
威望
9968
贡献值
702
好评度
8190
访问TA的空间
加好友
用道具
总版主
加关注
发消息
只看该作者
9楼
发表于: 2007-04-11
连接上MySQL后执行set names 'gbk' 或者set names 'utf8',依据你自己的程序中的内码而定
共
条评分
二笔 openSUSE Vim N9 BB10
XChinux@163.com
网易博客
腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
回复
举报
离线
slient
UID:17708
注册时间
2007-03-21
最后登录
2007-07-29
在线时间
15小时
发帖
14
搜Ta的帖子
精华
0
金钱
140
威望
15
贡献值
0
好评度
14
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
10楼
发表于: 2007-05-14
使用set names 'utf8' 与set names 'gbk'
都不行,楼主帮帮忙
共
条评分
回复
举报
离线
slient
UID:17708
注册时间
2007-03-21
最后登录
2007-07-29
在线时间
15小时
发帖
14
搜Ta的帖子
精华
0
金钱
140
威望
15
贡献值
0
好评度
14
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
11楼
发表于: 2007-05-14
使用set names 'utf8' 与set names 'gbk'
都不行,楼主帮帮忙
共
条评分
回复
举报
离线
netboy168
UID:3577
注册时间
2006-02-08
最后登录
2018-01-16
在线时间
5小时
发帖
2
搜Ta的帖子
精华
0
金钱
30
威望
3
贡献值
0
好评度
2
访问TA的空间
加好友
用道具
禁止发言
加关注
发消息
只看该作者
12楼
发表于: 2008-07-30
见我的回复贴,数据库设置为GBK,测试例子是楼主的例子,祝好运
http://www.qtcn.org/bbs/read.php?tid=8188&keyword=mysql
共
条评分
回复
举报
离线
solin
UID:91062
注册时间
2010-01-17
最后登录
2010-06-18
在线时间
20小时
发帖
49
搜Ta的帖子
精华
0
金钱
490
威望
59
贡献值
0
好评度
49
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
13楼
发表于: 2010-02-11
彻底解决数据库存储中文和Qt程序显示数据库中文及中文字符串的问题
(1)数据库和表以及表里的字符相关字段(varchar, char, text等)都要使用gbk_chinese_ci这种方式,不这样做也可以,但这样做,会省很多麻烦。
(2)重新编译Qt的MySQL驱动,需要修改src / sql / drivers / mysql / qsql_mysql.cpp文件。要修改的部分如下:第一百零八行的codec函数
static QTextCodec* codec(MYSQL* mysql)
{
return QTextCodec::codecForName("GBK");//增加部分
#if MYSQL_VERSION_ID >= 32321
QTextCodec* heuristicCodec = QTextCodec :: codecForName ( mysql_character_set_name ( mysql ) );
if (heuristicCodec)
return heuristicCodec;
#endif
return QTextCodec::codecForLocale();
}
(3)然后,重新编译qt的mysql驱动在Qt程序main函数中app后面开头处加入下面三句,加上这三个是省得不必要的麻烦
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
(4)在Qt数据库连接后,运行"SET NAMES 'UTF8'"语句或"SET NAMES 'GBK'"。
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("yourdatabase");
db.setUserName("yourusername");
db.setPassword("yourpassword");
db.open();
db.exec("SET NAMES 'UTF8'");
经过以上四步,就可以在Qt程序中直接使用中文字符串,而且可以直接使用中文字符串出入于程序和数据库之间
共
条评分
回复
举报
发帖
回复
返回列表
http://www.qtcn.org/bbs
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
关闭
补充发布信息
验证码:
发 布
隐藏
快速跳转
站务及资讯
网站公告
新闻资讯
Qt官方发布
网站管理
Qt应用及资源
Qt 作品展
Qt代码秀
Qt应用版
Qt技术讨论区
Qt安装与发布
Qt中文处理
Qt基础编程
Qt QML开发
Qt嵌入式开发
Qt移动平台开发
其它技术开发讨论区
Qt图书专区
《C++ GUI Qt 4编程》(第2版)专栏
《Qt高级编程》专栏
《零基础学Qt4编程》专栏
《Qt设计模式》(第2版) 图书专栏
Python Qt GUI快速编程
Qt项目开发区
天池项目
Qt开放平台开发库
机械CAD
扇贝词典
非活跃项目区
社区中心
帖子回收站(Trash)
招聘、求职、供求、广告等
休闲娱乐
关闭
关闭
选中
1
篇
全选