Qt5 8 0編譯MySQL驅動注意事項

2021-07-27 07:46:03 字數 732 閱讀 4233

在使用mysql5.7.14時,按照常規方法,使用qt5.8.0重新編譯mysql驅動之後,在使用的時候發現讀取的中文資料在使用tostring()轉換時,不能得到正確的結果。經查是qt的mysql的驅動**上做了mysql的版本判斷,對不同的版本使用了不同的編碼。解決方法如下:

x:\qt\qt5.8.0\5.8\src\qtbase\src\plugins\sqldrivers\mysql

開啟其中的qslq_mysql.cpp,瀏覽到1423行左右。其內容如下:

#if (mysql_version_id >=

40113

&& mysql_version_id <

50000) || mysql_version_id >=

50007

if (mysql_get_client_version() >=

50503

&& mysql_get_server_version(d->mysql) >=

50503) else

#endif

其中語句mysql_set_character_set(d->mysql, 「utf8mb4」);更改了特定版本的mysql使用的字符集。把utf8mb4改為utf8,即可正常讀取、轉換字串。

Qt編譯MySql驅動

我使用的環境是 vs2010 qt4.8.5 mysql5.6 首先,通過qt 4.8.5 command prompt進入qtdir src plugins sqldriver mysql目錄之下。而mysql預設安裝目錄是有空格的 program files mysql makefile無法準確...

Qt5 8 0遇到的乙個中文亂碼問題

維護公司 時看到乙個工具出現了如下的亂碼 於是開始檢查 藉此機會理了一遍char qstring gb18030 utf8之間的關係。這裡出現亂碼的原因是 由sdk介面得到乙個包含中文的char字串 char byname name len 這個字串儲存的中文為gb18030格式儲存,對於qt5.8...

編譯QT的mysql驅動

1.安裝mysql的時候一定要安裝 libs include files 的開發者模組 2.設定環境變數 path systemroot system32 systemroot systemroot system32 wbem c program files microsoft sql server...