找回密码
 立即注册
收起左侧

中文编码问题

5
回复
7371
查看
[复制链接]

尚未签到

来源: 2015-8-29 11:18:28 显示全部楼层 |阅读模式
1Qter豆
我在练习开发实战里头的数据管理系统的时候,创建数据库调试的时候发现出现了乱码,但是拿给的例程试就不会,但代码没什么不一样的,是不是还有别的环境设置会影响(之前社区里的教程我也出现过这问题,但是改下编码就好了  这次试了几种编码包括本地编码locale() 都不行)?
    例程编码设置部分:
      QTextCodec::setCodecForTr(QTextCodec::codecForLocale());    QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
我把它改成UTF-8或GB2312的还不行(这里还有个问题 我打开以前写的程序的时候 说“无法用UTF-8”编码解码 然后我改成GBK18030就行了 可是在工具——选项——编辑器里头的文件编码我设成了UTF-8了 为什么再次打开就无法用UTF-8解码了呢?)

这是我的数据库创建部分:
        QSqlQuery query;        query.exec("create table type(id varchar primary key,name varchar)");        query.exec(QString("insert into type values('00','请选择类型')"));        query.exec(QString("insert into type values('01','电视')"));        query.exec(QString("insert into type values('02','空调')"));
        query.exec("create table brand(id varchar primary key,brand varchar,"                   "type varchar,buyNum int,buyPrice int,sellPrice int,sell int,last int");        query.exec(QString("insert into brand values('01','海尔','电视',20,2000,3000,10,10)"));        query.exec(QString("insert into brand values('02','创维','电视',30,2200,2900,25,5)"));        query.exec(QString("insert into brand values('03','格力','电视',30,1500,2200,25,5)"));        query.exec(QString("insert into brand values('04','格力','空调',10,1000,2000,5,5)"));        query.exec(QString("insert into brand values('05','创维','空调',15,1200,2200,10,5)"));        query.exec(QString("insert into brand values('06','海尔','空调',18,1000,1500,13,5)"));


最佳答案

查看完整内容

你跟源码再好好对比一下吧!可以先写简单点的程序,看是否出错,然后逐渐添加代码,这样就容易定位问题了。
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2015-8-29 11:18:29 显示全部楼层
yanshipeng1205 发表于 2015-8-30 14:38
环境:qt4.8.4+qt creator3.0.0+win7
每次都有删。。 我直接把生成的build文件夹给删了  
代码顺序也没问 ...

你跟源码再好好对比一下吧!可以先写简单点的程序,看是否出错,然后逐渐添加代码,这样就容易定位问题了。
回复

使用道具 举报

累计签到:6 天
连续签到:1 天
2015-8-29 14:48:49 显示全部楼层
我的是Qt5 直接在文件上方添加
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
然后,就可以无视中字了。你可以试试。但我没用过QTextCodec
回复

使用道具 举报

累计签到:615 天
连续签到:1 天
2015-8-29 16:21:08 显示全部楼层
你用的是QT几?如果QT5的话,,应该就不用考虑中文编码的问题了
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2015-8-30 11:17:43 显示全部楼层
什么环境?注意设置编码的代码顺序,还有记得调试时及时删除生成的db文件,因为如果不手动删除该文件,如果前面代码出现问题了,后面再改动,数据库文件里面的内容可能还是乱码的。
回复

使用道具 举报

尚未签到

2015-8-30 14:38:31 显示全部楼层
yafeilinux 发表于 2015-8-30 11:17
什么环境?注意设置编码的代码顺序,还有记得调试时及时删除生成的db文件,因为如果不手动删除该文件,如果 ...

环境:qt4.8.4+qt creator3.0.0+win7
每次都有删。。 我直接把生成的build文件夹给删了  
代码顺序也没问题 我都是放在QApplication那条语句后头的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了