首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

sqlite3 的中文有关问题

2013-03-22 
sqlite3 的中文问题本帖最后由 xuqiangvc 于 2012-12-21 13:28:37 编辑环境:windowsXP VS2005 Qt4.5 sqlit

sqlite3 的中文问题
本帖最后由 xuqiangvc 于 2012-12-21 13:28:37 编辑 环境:windowsXP VS2005 Qt4.5 sqlite3

使用sqlite的shell创建一个数据库(Test1.db"),建张表(table1),插入几条记录(包括中文字符串),然后使用Qt这样读取:


QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE" );
db.setDatabaseName( "Test1.db" );
db.open();

QSqlQuery query;
query.exec( "SELECT * FROM table1" );
while( query.next() )
{
QString qsText = query.value( 0 ).toString();
int nValue = query.value( 1 ).toInt();
qDebug() << qsText << nValue;
}



读出来的中文部分都是乱码,正确的做法应该是怎样?
另外使用Qt向Sqlite中插入数据的正确做法是怎样的?
使用下面的方法:

QTextCodec::setCodecForCStrings( QTextCodec::codecForName("GBK"));

或者这样:

QString::fromLocal8Bit( "中文" );


插入数据后,再通过Qt读取都是正确的,但是在Sqlite的Shell中就是乱码了
求大神帮助啊,谢谢!
[解决办法]
换UTF-8试试。
[解决办法]
QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8"));


[解决办法]
你用的是Qt还是VS2005?
不就是用个VS的编译器和记事本吗?
[解决办法]
引用:
C/C++ code?1QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8"));
我的是同样的情况,数据文件.db我已经用sqlite administrator建好了,但是在qt里用qDebug读取出来的都是乱码,然后把上面那句代码加进去,后面UTF-8、GBK、GB2312都试过了,全是乱码,这个怎么办。。。
[解决办法]
引用:
引用:C/C++ code?1QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8"));我的是同样的情况,数据文件.db我已经用sqlite administrator建好了,但是在qt里用qDebug读取出来的都是乱码,然后把上面那句代码加进去,后面UTF-8、GB……

建议从建立数据库、建表、添加数据,读出数据,全部在Qt写的程序内完成,设置编码为UTF-8.
[解决办法]
引用:
引用:
C/C++ code?1QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8"));我的是同样的情况,数据文件.db我已经用sqlite administrator建好了,但是在qt里用qDebug读取出来的都是乱码,然后把上面那句代码加进去,后面UTF-8、GBK、GB2312都试过……



qDebug好像不支持中文似的,用它输出的东西都不能使中文
[解决办法]
引用:
引用:引用:
C/C++ code?1QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8"));我的是同样的情况,数据文件.db我已经用sqlite administrator建好了,但是在qt里用qDebug读取出来的都是乱码,然后……

不是吧,用qdebug输出日期,qDebug() << QDate::currentDate();就有中文。
[解决办法]
引用:
引用:
引用:引用:
C/C++ code?1QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8"));我的是同样的情况,数据文件.db我已经用sqlite administrator建好了,但是在qt里用qDebug读取……


这个倒是没试过,但是不管这么改编码,你输出一个中文的string它就输出乱码,所以我就放弃了
[解决办法]
遇到了同样的问题 有人知道怎么解决吗?
------解决方案--------------------


无解,sqlite的shell似乎就不支持中文。
为什么要纠结这些呢?读入读出没问题就可以了。

热点排行