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文件夹,替换之前的这两个文件

浙公网安备 33010602011771号