• 8515阅读
  • 3回复

[提问]linux下QT与MySQL数据库应用--直接用Latin1字符集处理中文且不乱码 [复制链接]

上一主题 下一主题
离线zheng501gf
 

只看楼主 倒序阅读 楼主  发表于: 2009-11-20
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
一句话轻松搞定Mysql与QT的中文乱码,无需更改数据库内码,一切采用默认即可:

首先,在main函数中设置
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForCStrings(codec);
即可在QT中直接使用中文,例如:
QMessageBox::warning(NULL,"提示信息","数据库中文测试!");
然后,创建数据库连接:
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("databaseName");
db.setUserName("yourName");
db.setPassword("yourPassWord");
打开数据库:
bool ok = db.open();
打开成功之后:
if (ok)

      db.exec("SET NAMES Latin1"); //设置数据库编码为Latin1,即可保证QT和MySQL中都能正常使用和显示中文。
      。。。。。。。
      。。。。。。。

可直接添加中文数据到数据库:
QString testStr= "中文测试";
QSqlQuery query;
QString strSql = QString("INSERT INTO yourTable(feildName,feildID) VALUES('%1', %2)")
                      .arg(testStr)
                      .arg(1);
query.exec(strSql);
显示也没有问题。
[ 此帖被zheng501gf在2009-11-20 16:34重新编辑 ]
离线sbtree
只看该作者 1楼 发表于: 2009-11-20
鼓励原创
windows 7 + VC++2008 + Qt4.5.2
离线wd007

只看该作者 2楼 发表于: 2009-11-20
不错,实践出真知。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线dunniu

只看该作者 3楼 发表于: 2010-08-23
好像不行呀
快速回复
限100 字节
 
上一个 下一个