我是SQLite的新手,但我一直在尝试浏览要从中提取数据的数据库文件(file.db)。
特别是在一个表中,“内容”列中的数据包含我无法读取的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,不懂专家。请帮忙提出一些想法或简单的解决方案。
提前谢谢!
答案 0 :(得分:0)
首先,BLOB是二进制大对象。 HTML是一种文本格式,除少数Unicode编码之一外,不需要解码。现代文本程序和/或浏览器应检测任何此类文本编码,并将结果显示为网页和/或可读的HTML文本。如果不是这种情况,那么可能不是您想象的那样简单的HTML页面。
顺便说一句,如果它是HTML文件,为什么要导出扩展名为.txt
的文件名?
如果数据确实以二进制形式存储,则将其导出为文本可能会没有用。将其导出为二进制文件,这样文本编码就不会出现问题。如果它是真正的HTML文本,那么最好将其导出为二进制,这样就可以记录每个字节而无需更改。然后,您应该能够在文本查看器和/或浏览器中将其打开以查看HTML页面。
但是,如果看起来不可读,则HTML文件显然是以其他方式编码的,并且只能猜测格式而无需检查前几个字节。获取一个二进制十六进制编辑器,并记录前8个十六进制字节。编辑问题并发布该信息。
(对于第二部分...重新编码。好吧,这个问题显然需要解决格式,正确保存并解码的问题。将其重新编码为相同格式并保存回来数据库中的数据肯定会是一个全新的问题。无论如何,您可能还是要重新考虑一下,因为首先将HTML文件转换为二进制格式来比较HTML文件可能不太有用。