首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从备份文件中解码MySql blob?

如何从备份文件中解码MySql blob?
EN

Stack Overflow用户
提问于 2018-01-24 06:18:22
回答 2查看 526关注 0票数 0

我有一个MySql备份文件,其中包含如下所示的列:

代码语言:javascript
复制
CREATE TABLE `person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`profilepicture` blob,
)

此行配置文件的内容在备份文件中编码为某种转储,开始(在文本编辑器中)如下所示:

代码语言:javascript
复制
INSERT INTO `tbox_account_transaction` VALUES (8,'?\?\?0JFIF\0\0\0\0\0\0[...]');                  

如何在c#中从.sql备份文件中解码此文件?它不是Base64,但我不知道它还可能是什么。我不想将backup.sql文件恢复到MySql,而是从备份文件中解码blob。

EN

回答 2

Stack Overflow用户

发布于 2018-01-24 08:28:48

您看到的字节几乎肯定是JPEG图像的初始字节。从第五个字节开始的可读字符串"JFIF“就是线索(参见https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format)。

许多其他二进制字节是null或其他不可打印的字符。所有奇怪的\?\0序列都是客户端在文本显示上表示这些字节的最大努力。

访问此数据的最简单方法是将转储文件恢复到MySQL实例(甚至是在笔记本电脑上运行的本地实例),然后在C#代码中使用SQL来访问profilepicture blob的二进制内容。

要么像@Tommaso Belluzzo建议的那样将数据从一个blob保存到.jpg文件,要么直接显示它,如果可以的话。我不是C#程序员,但似乎有一个Bitmap类可以做到这一点(请参阅https://msdn.microsoft.com/en-us/library/8tda2c3c(v=vs.85).aspx

提供如何在C#应用程序中编写SQL的教程超出了Stack Overflow解答的范围。有很多资源可以用来做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2018-01-24 07:12:48

这看起来像一个jpg文件头。尝试执行以下操作(blob是一个包含profilepictureString类型变量):

代码语言:javascript
复制
using (MemoryStream stream = new MemoryStream(buffer))
{
    Image image = Image.FromStream(stream, true, true);
    image.Save("C:\\Test.jpg", ImageFormat.Jpeg);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48411765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档