Text sqlite3将BLOB数据提取为文本

Text sqlite3将BLOB数据提取为文本,text,encoding,sed,sqlite,blob,Text,Encoding,Sed,Sqlite,Blob,我正试图从使用sqlite3数据库存储所有消息的instant messenger中归档旧的聊天历史记录 我已经可以通过查询阅读每条消息 select out,data from messages order by mid DESC; 并对其进行正确排序,但问题是,它们存储为BLOB。因此,输出如下所示: 0|�j�"�}��ҟm�����7�y��ur�h\�S▒-message here- 0|�j�"�}��ҟm�����7�y��ur�h\�S▒-message here- 1|�j�

我正试图从使用sqlite3数据库存储所有消息的instant messenger中归档旧的聊天历史记录

我已经可以通过查询阅读每条消息

select out,data from messages order by mid DESC;
并对其进行正确排序,但问题是,它们存储为BLOB。因此,输出如下所示:

0|�j�"�}��ҟm�����7�y��ur�h\�S▒-message here-
0|�j�"�}��ҟm�����7�y��ur�h\�S▒-message here-
1|�j�"�|����m���ҟ�ur��ur��ZT-message here-

我能在开头不带这些讨厌的符号的情况下,将其提取为文本吗?我可以用sed删除问号,但布局仍然不好。

十六进制(数据)的输出是什么,例如消息?如果标题大小固定,它看起来是这样的,似乎标题总是66个十六进制数字,如何使用substr跳过此查询中“数据”的前66个十六进制数字<代码>按mid DESC从消息顺序中选择输出、十六进制(数据)已经感谢你们的帮助了!这将是33个字节。忽略十六进制;阅读我链接到的帮助。示例消息的
hex(data)
输出是什么?它看起来像是
BA6AEB221EACFCFC1B2D1016DBCB19D03D29F02B572999B5757574759440BA653097769655736F3F20784400002063ED3D00000000
如果标题大小固定,请使用。标题似乎总是66个十六进制数字,如何使用substr跳过此查询中“数据”的前66个十六进制数字<代码>按mid DESC从消息顺序中选择输出、十六进制(数据)已经感谢你们的帮助了!这将是33个字节。忽略十六进制;阅读我链接到的帮助。