Расшифровка данных BLOB-объектов из базы данных sqlite в читабельный текст - PullRequest
1 голос
/ 17 апреля 2019

У меня есть файл базы данных Sqlite, в котором есть данные BLOB-объектов. Я знаю только, что в базе данных есть данные BLOB-объектов, и я знаю, какой должен быть ожидаемый результат. Ожидаемый вывод данных BLOB-объектов должен быть Mac-адресом с другим текстом.

Я попытался получить шестнадцатеричный вывод, но на самом деле не помог мне получить ожидаемый вывод, который, как я знаю, находится в базе данных. Я также использовал Hex-редактор и средство просмотра sqlite, но отображает только нечитаемый текст, бессмысленный.

Вот некоторый код, который я пытался получить байты из данных BLOB-объектов, но не выдает ожидаемого результата. Sqlite не имеет функции getBlob в Java.

if (rs.next()) {
    byte[] buffer = rs.getBytes(1);
    System.out.println(buffer.toString());
}

Ожидаемый вывод от BLOB-объекта должен быть следующим: «ДЖОН A6: 44: 33: A4: G5: A4»

Вот пример шестнадцатеричного дампа 0008f473eb41 e8ba3b1c

Как программно получить данные большого двоичного объекта и декодировать содержимое большого двоичного объекта в sqlite?

1 Ответ

0 голосов
/ 17 апреля 2019

Прямо сейчас вы печатаете массив byte[] toString(). Массивы в Java не реализуются осмысленно.

Вы можете попробовать преобразовать массив byte[] в String с помощью:

new String(buffer, Charsets.UTF_8)

Если это не работает, используйте rs.getBinaryStream(1), чтобы получить InputStream, представляющий значение, и прочитайте его согласно этому ответу .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...