Qt 读取Foxpro数据库中文记录是产生乱码

applewqj 2015-06-08 07:15:28
Qt 读取Foxpro数据库中文记录是产生乱码,把网上说的方法 GBK、UTF-8、system.....编码格式都试过了,还是乱码。附带源码


//连接数据库
void foxProp::on_pushButton_clicked()
{
db = QSqlDatabase::addDatabase("QODBC","test");
QString dsn= "Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=D:\\vftest\\vfdb.dbc;Exclusive=No;";
db.setDatabaseName(dsn);

if(!db.open ())
{
QSqlError error = db.lastError();
QMessageBox::warning (0, "Warning", QString("Failed to open database!Error:%1").arg(error.text()));

}
else
QMessageBox::about(this,"dbf","ok");
}



//读取数据
void foxProp::on_pushButton_2_clicked()
{
//db = QSqlDatabase::addDatabase("QODBC","test");
QSqlQuery query=QSqlQuery::QSqlQuery(db);
//query.exec("SELECT * FROM csfzk.dbf");
query.exec("SELECT * FROM vftable");
while(query.next())
{
QString index = query.value(1).toString();

QString str1 = QString::fromLocal8Bit(index.toStdString().c_str());
QString str2 = QString::fromLatin1(index.toStdString().c_str());

QString str3 = QString::fromAscii (index.toStdString().c_str());;
// QString str4 = QTextCodec::toUnicode(index.toStdString().c_str());
QString name = query.value(2).toInt();
ui.listWidget->addItem(str1);
break;
}
}
...全文
438 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
vample 2017-03-23
  • 打赏
  • 举报
回复
难道是先用MFC读出中文字符串,然后再用QT?
zhuwuzhu 2016-01-30
  • 打赏
  • 举报
回复
引用 11 楼 applewqj 的回复:
感谢大家,问题解决,先用windows读CStrig类型的,然后再用Qt
求问楼主怎么解决这个问题的,能不能说详细点?
applewqj 2015-06-18
  • 打赏
  • 举报
回复
感谢大家,问题解决,先用windows读CStrig类型的,然后再用Qt
applewqj 2015-06-17
  • 打赏
  • 举报
回复
Qt5.2.0 + vs2010 试过同样的结果
applewqj 2015-06-17
  • 打赏
  • 举报
回复
7楼很明显没装驱动吧
xiaodong60606 2015-06-15
  • 打赏
  • 举报
回复
qt5里面用UTF-8可以,把所有文档都改成这个。
彬ye 2015-06-15
  • 打赏
  • 举报
回复
楼主你好,怎么链接DBF的?我一直都出错
"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect"
applewqj 2015-06-11
  • 打赏
  • 举报
回复
都试过了,不好使 query.value(0).toString() 的时候已经是乱码了
jiqiang01234 2015-06-10
  • 打赏
  • 举报
回复
QString::fromUcs4() QString::fromUtf8() QString::fromUtf16() 也都试了?
applewqj 2015-06-10
  • 打赏
  • 举报
回复
都试过了,还是换MFC吧
applewqj 2015-06-09
  • 打赏
  • 举报
回复
莫非要尸陈大海了
jiqiang01234 2015-06-09
  • 打赏
  • 举报
回复
数据库中的中文是什么编码? 读取的时候需要设定为相同的编码
tashanzhichi 2015-06-09
  • 打赏
  • 举报
回复
貌似QT连接DBF还不能支持中文显示

16,199

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧