2016-01-11 68 views
0

我一直在這種情況下堅持下去。ODBC連接器支持MYSQL中的utf8mb4

我的應用程序是C++,它通過MySQL odbc connector v5.2 Unicode Driver連接到MySQL數據庫5.5.34。

我的表格正在使用字符集和整理屬性'utf-8'。要插入補充Unicode字符,我通過

改變它

我的表最初創建:

CREATE TABLE mytable (SAMPLECOLUMN text) ENGINE=InnoDB DEFAULTCHARSET=utf8; 

changed to, 
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 

在此之後,我能夠直接(不通過我的應用程序)插入增補字符到指定持有「 TEXT'數據類型。

當遇到補充字符時,odbc連接器崩潰。

以下是我的一些my.ini配置。

[mysql] 
default-character-set=utf8 

[mysqld] 
character-set-server=utf8 
default-storage-engine=INNODB 

我試圖插入查詢:

INSERT INTO mytable (SAMPLECOLUMN) VALUES ("乕乭乺丕"); 

任何指針/對決將是巨大的。

另外,嘗試使用v5.3 Unicode MYSQL odbc連接器和v1.0.5 MariaDB ODBC連接器,仍然是一樣的。

在此先感謝。

+0

發現這是在MySQL的論壇 有同樣問題的其他用戶 http://bugs.mysql.com/bug.php?id=67297 – D3XT3R

回答

2

這裏的解決方法是使用MariaDB odbc連接器連接到MySQL數據庫。 https://mariadb.com/my_portal/download/connector-odbc/1.0

確保在ODBC DSN設置此,並保持連接字符集空

MariaDB connector

開始的MyODBC的V5.2,SET NAMES已被棄用。因此需要使用MariaDB連接器。希望補充字符問題在MySQL odbc連接器中得到修復。

0

連接到MySQL後,您需要發出SET NAMES utf8mb4。否則,連接不能處理4字節字符。

如果這還不夠,請追查SQLExecDirectW - 查看是否有更新。

+0

的MySQL連接器不允許我'集名稱通過'initstmt utf8mb4' '參數在ODBC中 – D3XT3R

+0

看起來像5.3.4可用:http://dev.mysql.com/downloads/connector/odbc/ –