Как декодировать данные BLOB, редактировать их, а затем снова кодировать в данные BLOB? - PullRequest
0 голосов
/ 24 октября 2019

Я новичок в SQLite, но я пытался просмотреть файл базы данных (file.db), из которого я пытаюсь извлечь данные.

В одной таблице, в частности, данные из "содержимогоmsgstr "В столбце есть данные BLOB, которые я не могу прочитать. Мне удалось экспортировать определенную ячейку в .txt, но данные BLOB выглядят нечитаемыми.

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

<?php 
$file_name = "exported_blob.txt";
$gestor = fopen($file_name, "r");
$content = fread($gestor, filesize($file_name));
fclose($gestor);
header('Content-type: text/htm');
echo $content;

// then here create a new txt file with the changes in order to import into cell
?>

Моя цель - декодировать данные BLOB (это файл htm), отредактировать их, а затем снова кодировать в BLOBи сохраните его, и увидите изменения.

Я знаю только javascript и PHP, но не эксперт. Пожалуйста, помогите с некоторыми идеями или простым решением, чтобы сделать это.

Заранее спасибо!

1 Ответ

0 голосов
/ 25 октября 2019

Прежде всего, BLOB - это Двоичный Большой ОБЪЕКТ. HTML - это текстовый формат, который не требует декодирования, кроме одной из нескольких кодировок Unicode. Современные текстовые программы и / или браузеры должны обнаруживать любую такую ​​кодировку текста и отображать результаты в виде веб-страницы и / или читаемого текста HTML. Если это не так, то, скорее всего, это не простая HTML-страница, как вы предполагаете.

Кстати, если это HTML-файл, зачем экспортировать имя файла с расширением .txt?

Если данные действительно хранятся в двоичном виде, то их экспорт в виде текста, скорее всего, будет бесполезен. Экспортируйте его как двоичный файл, чтобы не было проблем с кодировкой текста. Если это действительно текстовый HTML, то все равно будет полезно экспортировать его в двоичном виде, чтобы каждый байт записывался без изменений. После этого вы сможете открыть его в средстве просмотра текста и / или браузере для просмотра HTML-страницы.

Но если он выглядит нечитаемым, то HTML-файл, по-видимому, кодируется каким-то другим способом, и можно только угадать формат, не проверяя первые несколько байтов. Получите двоичный шестнадцатеричный редактор и запишите первые 8 шестнадцатеричных байтов. Отредактируйте вопрос и опубликуйте эту информацию.

(Что касается второй части ... перекодировать ее. Что ж, этот вопрос, очевидно, должен касаться выяснения формата, его правильного сохранения и декодирования. - кодирование его в тот же формат и сохранение его в базе данных обязательно будет совершенно новым вопросом. Возможно, вы все равно захотите переосмыслить это, так как сравнение файла HTML путем его сначала преобразования в некоторый двоичный формат, вероятно, не очень полезно.)

...