ODBC连接器支持MYSQL中的utf8mb4

时间:2016-01-11 06:24:48

标签: mysql unicode odbc utf8mb4 supplementary

我在这种情况下被困住了。

我的应用程序是使用C ++通过MySQL odbc connector v5.2 Unicode驱动程序连接到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连接器,仍然是一样的。

提前致谢。

2 个答案:

答案 0 :(得分: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连接器中得到修复。

答案 1 :(得分:0)

连接MySQL后需要发出SET NAMES utf8mb4。否则,连接无法处理4字节字符。

如果这还不够,请追查SQLExecDirectW - 看看是否有更新。