完美解决SQLite读写_控制台输出_界面显示中文问题

发布于 2022-09-30 19:40:51 字数 3286 浏览 18 评论 0

我的环境是Qt 4.1,直接使用QString的话,无论界面还是数据库读写都是乱码,终于在网路上面搜索到了解决方法,并编写了例子,可能不完善,大家一起研究吧。源码如下:

  1. #include <QtGui/QApplication>
  2. #include <QMessageBox>
  3. #include <QSqlDatabase>
  4. #include <QSqlError>
  5. #include <QSqlQuery>
  6. #include <QVariant>
  7. #include <QtDebug>
  8. #include <QString>
  9. #include <QTextCodec>
  10. #include <QListWidget>
  11. int main(int argc, char *argv[])
  12. {
  13.   QApplication a(argc, argv);
  14.   QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
  15.   QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  16.   db.setDatabaseName("e:\\db.db");
  17.       if (!db.open()) {
  18.     QMessageBox::critical(0, qApp->tr("Cannot open database"),
  19.         qApp->tr("Unable to establish a database connection.\n"
  20.               "This example needs SQLite support. Please read "
  21.               "the Qt SQL driver documentation for information how "
  22.               "to build it.\n\n"
  23.               "Click Cancel to exit."), QMessageBox::Cancel,
  24.               QMessageBox::NoButton);
  25.     return false;
  26.   }
  27.   QSqlQuery rs(db);
  28.   rs.exec("create table person(name text,age integer)");
  29.   rs.exec("delete from person where age=119");
  30.   QString strSql("insert into person(name,age) values('中国是在亚洲',119)");
  31.   rs.exec(strSql);
  32.   bool blnOpen=rs.exec("select * from person");
  33.   if (blnOpen==false)
  34.   {
  35.     qDebug("Query database error\n");
  36.     return -1;
  37.   }
  38.   QListWidget *window=new QListWidget();
  39.      
  40.     while (rs.next()) {
  41.           int age= rs.value(1).toInt();
  42.           QString name=rs.value(0).toString();
  43.           window->addItem(name);  
  44.         }
  45.     QString test="这是测试窗体";
  46.     qDebug("字符串的长度是:%d",test.length());
  47.       window->setWindowTitle(test);      
  48.       window->show();
  49.      
  50.   return a.exec();
  51. }

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮生面具三千个 2022-10-07 19:40:51

我用utf8,都能正常顯示。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文