为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm6
【操作系统】:麒麟32(Linux sx3-escr1 2.6.32-754.23.1.ky3.kb4.pg.x86 64 )
【CPU】:x86 64
【问题描述】*:使用qt4+odbc的方式查询dm6数据库数据,搜索“东昇光伏电站”的时候,windows上打印输出结果是“东昇光伏电站”,但是linux上面打印输出的只有“东伏电站”,我测试了一下linux下查询到的QString的size()是6,但是他输出确实只有四个字
使用如下代码去匹配,只有第一个if()语句能进去
if(query1.value(0).toString().contains("伏电站"))
qDebug()<<"1";
if(query1.value(0).toString().contains("东昇光伏电站"))
qDebug()<<"2";
if(query1.value(0).toString() == QString("东伏电站"))
qDebug()<<"3";
if(query1.value(0).toString() == QString("东光伏电站"))
qDebug()<<"4";
if(query1.value(0).toString() == QString("东昇伏电站"))
qDebug()<<"5";
if(query1.value(0).toString() == QString("伏电站"))
qDebug()<<"6";
qodbc动态库把libodbc返回的char数据以utf8编码转换了,修改了相关的源码重新编译qodbc库,字符就正常了。通过打印两个库输出的char数据发现确实在转码的时候中间两个字的数据内容被程序自动修改了