Я пытаюсь преобразовать тип mysqlx :: Value, который должен быть строкой, но в нем есть специальные символы нестандартного языка. Мне нужно обработать это как std :: string или эквивалент.
Я использую MySQL C ++ Connector 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();
Столбец имени в значении строки [2] может иногда содержать такие символы, как: é или í
Я хочу передать результат mysqlx :: Value в объект std :: string или аналогичный. Примечание: это прекрасно работает, когда строка не содержит специальных символов.
Я пытался использовать поток строк, но я получаю сообщение «Ошибка CDK: ошибка преобразования строки», когда строка содержит специальные символы.
std::stringstream name;
name << row[2]; // Exception throws here
РЕДАКТИРОВАТЬ: Ubuntu 18.04, GCC 7.3.0