C++MySQL连接器没有utf8

C++ MySQL Connector no utf8

本文关键字:utf8 连接器 C++MySQL      更新时间:2023-10-16

我在从MySQL数据库获取UTF-8字符串时遇到问题。我使用C++连接器1.1并连接以下代码:

sql::ConnectOptionsMap connection_properties;
connection_properties["hostName"] = server;
connection_properties["userName"] = user;
connection_properties["password"] = password;
connection_properties["schema"] = database;
connection_properties["port"] = 3306;
connection_properties["OPT_CHARSET_NAME"] = "utf8";
connection_properties["characterSetResults"] = "utf8";
connection_properties["preInit"] = "SET NAMES utf8";
driver = get_driver_instance();
con = driver->connect(connection_properties);
con->setSchema(database);

正如你所看到的,我已经尝试了不同的utf8选项。。。。

如果语句应返回数据库字符串,如"アフガニスタン当我使用Visual Studio调试器时,我只看到这样的字符">

std::string name = res->getString(2);

Json编码后打印出"éó"╣┐"│"进入命令行。

其他具有普通拉丁字符的utf8列将按预期返回。它只影响具有非拉丁字符的翻译列。

在同一台电脑上,来自具有相同逻辑(数据库连接和json编码)的PHP的相同数据库调用会打印出以下字符"\u30a2\u30d5\u30ac\u30cb\u30b9\u30bf\u30f3"。

对此有什么想法吗?

实际上没有问题。我将返回的数据写入一个文件,并且所有UTF-8字符都是正确的。调试器和CMD无法按预期显示UTF-8数据。。。