我有一个包含如下列的MySql备份文件:
INSERT INTO `tbox_account_transaction` VALUES (8,'?\?\?0JFIF\0\0\0\0\0\0[...]');
此行profilepicture的内容在备份文件中编码为某种类型的转储,从(在文本编辑器中)开始,如下所示:
arr1 = ["Precon", "Contra", "Postco", "Cancel", "Consul"]
如何从c#中的.sql备份文件解码?它不是Base64,但我不知道它可能是什么。我不想将backup.sql文件还原到MySql,而是从备份文件中解码blob。
答案 0 :(得分:1)
您看到的字节几乎肯定是JPEG图像的初始字节。从第五个字节开始的可读字符串“JFIF”是线索(参见https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format)。
许多其他二进制字节是null或不可打印的字符。所有奇怪的\?
或\0
序列都是客户在文本显示中表示这些字节的最佳努力。
访问此数据的最简单方法是将转储文件还原到MySQL实例(甚至是在笔记本电脑上运行的本地实例),然后在C#代码中使用SQL来访问{{1}的二进制内容} blob。
将@Tommaso Belluzzo建议的数据从一个blob保存到profilepicture
文件,或者只是直接显示,如果可以的话。我不是C#程序员,但似乎有一个.jpg
类(参见https://msdn.microsoft.com/en-us/library/8tda2c3c(v=vs.85).aspx)。
提供有关如何在C#应用程序中编写SQL的教程,超出Stack Overflow答案的范围。有足够的资源可用于此。
答案 1 :(得分:0)
这看起来像jpg
文件头。请尝试以下操作(blob
是包含String
的{{1}}类型变量:
profilepicture