gpt4 book ai didi

python - 从 python 读取 BerkleyDB 文件 : `\x01\x0b\x88\x0c\x01` ?

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:29 24 4
gpt4 key购买 nike

这个问题简而言之:\x04++HLMh7EjP3ILSfF\x00

有什么作用?
'\x01\x0b\x88\x0c\x01-\x10\x02\x06!\x05"\x05#\n$\x0c\'\x0e%\x0b\x01&\x02\'\x06(\n\x00\x00'

意思是?

大家好,

我正在尝试读取 palm pre 2 数据库文件。一些信息可用 in the documentation ,但不足以让我清楚地理解格式。

使用file命令,我了解到格式为objects.db:Berkeley DB(Btree,版本9, native 字节顺序)

尝试使用bsddb.open()直接打开数据库没有成功;我不得不使用

>>> env = bsddb.db.DBEnv()
>>> env.open(None, bsddb.db.DB_CREATE | bsddb.db.DB_INIT_MPOOL)
>>> internal_db = bsddb.db.DB(env)
>>> internal_db.open('C:\objects.db', 'objects.db', bsddb.db.DB_BTREE, bsddb.db.DB_RDONLY)

现在我已经打开数据库,但键和值以我不理解的格式编码:例如,这里有一些键: '\x04++HMvu4v2GZbo1Ox\x00', '\x04++HMwBSPR8Zvwkt5\x00'、'\x04++HMwF4OJ0R+WeSS\x00' 和一个值:

'\x01\x0b\xb7\r\x00\x05\xee\x89\x10\x029\x060\x04\x00/\x03\x04++HQqD0wWr_hZP75\x00\x00 \x02"\x06\x00$\x04inbox\x001\x02+\x04+33626320868\x00\x00%\x0e\x00\x00\x01.0\x19\xb3\x10&\x04Ok\x00-\rM\\/\x892\n:\r\x00\x05\xee\x89\'\x04sms\x003\n(\x04successful\x00.\rM\\/\x89\x00'

我尝试从utf8解码它,但没有得到任何令人信服的结果。您知道正在使用哪种编码吗?我不明白 file 命令输出的 native 字节顺序部分,它可能与此有关吗?

谢谢!

最佳答案

有根据的猜测

从简单的检查来看,该消息可能是“短信成功”,并带有电话号码:

unicode(s, errors='ignore') u'\x01\x0b\r\x00\x05\x10\x029\x060\x04\x00/\x03\x04++HQqD0wWr_hZP75\x00\x00 \x02"\x06\x00$\x04inbox\x001\x02+\x04+33626320868\x00\x00%\x0e\x00\x00\x01.0\x19\x10&\x04Ok\x00-\rM\/2\n:\r\x00\x05\'\x04sms\x003\n(\x04successful\x00.\rM\/\x00'

我认为其他字符都是二进制数据。

编码

解码它没有帮助 - chardet 和 BeautifulSoup 都将其检测为 windows-1252 :

>>> s=u'\x01\x0b\xb7\r\x00\x05\xee\u2030\x10\x029\x060\x04\x00/\x03\x04++HQqD0wWr_hZP75\x00\x00 \x02"\x06\x00$\x04inbox\x001\x02+\x04+33626320868\x00\x00%\x0e\x00\x00\x01.0\x19\xb3\x10&\x04Ok\x00-\rM\\/\u20302\n:\r\x00\x05\xee\u2030\'\x04sms\x003\n(\x04successful\x00.\rM\\/\u2030\x00'
>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup(s)
>>> soup.originalEncoding
'windows-1252'
>>> chardet.detect(s)
{'confidence': 0.5, 'encoding': 'windows-1252'}

但是,1252 解码没有任何意义:

>>> s.decode('windows-1252')
u'\x01\x0b\xb7\r\x00\x05\xee\u2030\x10\x029\x060\x04\x00/\x03\x04++HQqD0wWr_hZP75\x00\x00 \x02"\x06\x00$\x04inbox\x001\x02+\x04+33626320868\x00\x00%\x0e\x00\x00\x01.0\x19\xb3\x10&\x04Ok\x00-\rM\\/\u20302\n:\r\x00\x05\xee\u2030\'\x04sms\x003\n(\x04successful\x00.\rM\\/\u2030\x00'

关于python - 从 python 读取 BerkleyDB 文件 : `\x01\x0b\x88\x0c\x01` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5610340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com