mysql - ODBC 连接器支持 MYSQL 中的 utf8mb4

标签 mysql unicode odbc utf8mb4 supplementary

我一直被困在这种情况下。

我的应用程序是用 C++ 编写的,它通过 MySQL odbc 连接器 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 连接器,还是一样。

提前致谢。

最佳答案

这里的解决方法是使用 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连接器中的补充字符问题得到解决。

关于mysql - ODBC 连接器支持 MYSQL 中的 utf8mb4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715346/

相关文章:

php - 无法连接到 iSeries odbc

mysql - 将 dbFailOnError 添加到 CurrentDb.Execute 无法更新表

windows-10 - 如何修复安装Microsoft ODBC Driver 17的无限重启循环-消息: A previous installation required a reboot of the machine for changes

MYSQL - 使用 GROUP 和 JOIN

python - python 中的阿拉伯语正则表达式和 MySQLdb

python - 如何在 python 中打印原始 unicode?

python - 如何从请求中读取日文字符?

MySQL:选择特定行前后的5行

PHP检查数据库中是否存在值

mysql - 在联接中使用 MAX 函数