Azure mysql 连接重定向更改编码

问题描述

我使用连接到 Azure 中的 MysqLPHP 应用程序。我使用 utf8mb4 作为编码,使用 utf8mb4_unicode_ci 作为排序规则。

当我在没有连接转发的情况下连接到 MysqL 时,一切正常。 当我按照 here 所述在 PHP.ini 中启用连接转发时,在处理数据库查询的结果时,我收到有关格式错误的 UTF-8 字符的错误。连接转发是否有可能改变编码?如果是,我可以以某种方式禁用它吗?

解决方法

当使用带有 PDO 的库时,这似乎是一个 Bug。 连接字符串中的字符集会被忽略。

可以通过将 SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci 用作 PDO::MYSQL_ATTR_INIT_COMMAND

来解决