一句话轻松搞定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重新编辑 ]