sqlite3 的中文有关问题
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的编译器和记事本吗?
[解决办法]我的是同样的情况,数据文件.db我已经用sqlite administrator建好了,但是在qt里用qDebug读取出来的都是乱码,然后把上面那句代码加进去,后面UTF-8、GBK、GB2312都试过了,全是乱码,这个怎么办。。。
[解决办法]建议从建立数据库、建表、添加数据,读出数据,全部在Qt写的程序内完成,设置编码为UTF-8.
[解决办法]qDebug好像不支持中文似的,用它输出的东西都不能使中文
[解决办法]不是吧,用qdebug输出日期,qDebug() << QDate::currentDate();就有中文。
[解决办法]这个倒是没试过,但是不管这么改编码,你输出一个中文的string它就输出乱码,所以我就放弃了
[解决办法]遇到了同样的问题 有人知道怎么解决吗?
------解决方案--------------------
无解,sqlite的shell似乎就不支持中文。
为什么要纠结这些呢?读入读出没问题就可以了。