gpt4 book ai didi

c++ - 将 mysqlx::Value 转换为带有特殊字符的 std::string

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:16 25 4
gpt4 key购买 nike

我试图转换一个 mysqlx::Value 类型,它应该是一个字符串,但它有特殊的非标准语言字符。我需要将其作为 std::string 或等价物来处理。

我正在使用 mysql C++ 连接器 XDevAPI 来检索数据。

mysqlx::Session sess(_db_conn_info.db_host, _db_conn_info.db_port, _db_conn_info.db_user, _db_conn_info.db_pass);
mysqlx::Schema db = sess.getSchema(_db_conn_info.db_name);

mysqlx::Table artist_table = db.getTable("Artist");
mysqlx::RowResult artist_result = artist_table.select("id", "a_id", "name", "is_australian")
.where("id like :artist_id").bind("artist_id", artist_id).execute();

mysqlx::Row row = artist_result.fetchOne();

row[2] 值中的名称列有时可以包含如下字符:é 或 í

我想将 mysqlx::Value 结果传递给 std::string 对象或类似对象。 注意:当字符串不包含特殊字符时,这可以正常工作。

我试过使用字符串流,但当字符串包含特殊字符时出现“CDK 错误:字符串转换错误”。

std::stringstream name;
name << row[2]; // Exception throws here

编辑:ubuntu 18.04,gcc 7.3.0

最佳答案

原来我使用的是 mysql-cpp-connector 版本,它有一个已知的 utf8mb4 字符编码错误。 (/泪流满面),升级修复了它。

关于c++ - 将 mysqlx::Value 转换为带有特殊字符的 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55034161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com