Qt Windows解决QODBC驱动获取中文乱码的问题

环境:Windows7 VisualStudio2019社区版 Qt5.14.1

使用QODBC连接Sql Server的时候,不知为什么查询执行结果都是乱码问号,本以为获取的结果是正确的只是编码不对,然而查看之后发现真的获取的就是问号。

最后确定是Qt自带的数据库驱动QODBC有问题,大致问题在于其ODBC中qsql_odbc.cpp中QODBCDriverPrivate类构造函数中unicode(false)的问题,改成true后重新编译,踩了不少坑用新驱动取代旧驱动,一切正常。

编译步骤:打开VS自带的X64 Native Tools Command Prompt for VS 2019

跳转至Qt安装目录运行\msvc2017_64\bin\qtenv2.bat,运行后看到"Remember to call vcvarsall.bat to complete environment setup!"。

跳转至Qt安装目录的\Src\qtbase\src\plugins\sqldrivers(进入ODBC文件夹即可修改源代码)

输入qmake

输入nmake sub-odbc

打开\sqldrivers\plugins\sqldrivers文件夹,将qsqlodbc.dll和qsqlodbcd.dll复制

前往\msvc2017_64\plugins\sqldrivers文件夹,替换之前的这两个文件

posted @ 2020-03-30 12:48  DTBlack  阅读(491)  评论(0)    收藏  举报