Я не могу получить QSql Query / Model / Record для извлечения двоичных данных из базы данных MySQL, я задаю поле с помощью пользовательского сгенерированного оператора запроса:
INSERT INTO `Table`( `id`, `uid`,) VALUES ('1', X'2b40b58f5eb580bd198389e1e435e16da31fc2020f5ea48b');
Проверено с помощью MySql Workbench, и он отображаетправильное значение bin
Но, когда я пытаюсь получить поле в Qt, используя:
QSqlQueryModel model;
model.setQuery(query);
QSqlRecord record=model.record(0);
QByteArray uid=record.value("uid").toByteArray();
, я получаю:
"+@\xEF\xBF\xBD\xEF\xBF\xBD^\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\x19\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD""5\xEF\xBF\xBDm\xEF\xBF\xBD\x1F\xEF\xBF\xBD\x02\x0F^\xEF\xBF\xBD\xEF\xBF\xBD"
, преобразовывающий в Hex ():
2b40efbfbdefbfbd5eefbfbdefbfbdefbfbd19efbfbdefbfbdefbfbdefbfbd35efbfbd6defbfbd1fefbfbd020f5eefbfbdefbfbd
Что, конечно, не правильно, мне кажется, что фреймворк не может правильно интерпретировать специальные символы или что-то еще не так ... Как исправить это поведение?
edit:
uid установлен в BINARY (24)