C# 如何输出二进制数据?

C# 如何输出二进制数据?,c#,asp.net,binary,webforms,C#,Asp.net,Binary,Webforms,我在将文件保存为二进制文件到数据库时遇到问题,因此,为了进行调试,我尝试查看二进制文件的内容。我试过这个: file.InputStream.Read(fileData, 0, size); Debug.Print("binary=" + fileData); 它的输出是: binary=System.Byte[] 如何查看实际数据,这些数据应该是0x78421824794783741237FJKHASJKH等 在我的数据库中,它只作为0x(这是我试图解决的更大的问题)。如果您只是想确保数据

我在将文件保存为二进制文件到数据库时遇到问题,因此,为了进行调试,我尝试查看二进制文件的内容。我试过这个:

file.InputStream.Read(fileData, 0, size);
Debug.Print("binary=" + fileData);
它的输出是:

binary=System.Byte[]
如何查看实际数据,这些数据应该是
0x78421824794783741237FJKHASJKH


在我的数据库中,它只作为
0x
(这是我试图解决的更大的问题)。

如果您只是想确保数据在那里,最简单的方法可能是以Base64编码输出它。比如:

byte[] foo = new byte[] { 1, 2, 3, 4, 5 };
string base64 = Convert.ToBase64String(foo);
Console.WriteLine(base64);


如果没有数据(基本上是一个
Byte[0]
),那么
base64
将是一个空字符串。

EDIT:FYI的可能重复,您得到“System.Byte[]”作为输出的原因是,这只是字节数组的
ToString()
表示;由于表示法有点随意(以2为基数?以16为基数?以64为基数?),所以我假设您需要十六进制输出,但您的“应该看起来像”示例包含无效字符(“JKHS”),但我猜这只是您在键盘上捣乱的结果。:)是否希望将其视为一组字节值?1和0?Base64?什么?是的,我只是想确定里面有实际的数据;因为它只以
0x
的形式出现在我的数据库中,而且应该有一堆数字(二进制代码)。太棒了,所以这给了我
binary=iVBORw0KGgoAAAANSUhE…
。我可以把它保存在我的数据库中,它会正常输出吗?如何将数据保存到数据库?目前,当我试图保存它时,它只存储
0x
。你知道吗?感谢您至少向我展示了这一点。当然,您可以将该数据以字符串形式保存在数据库中(通常是
varchar
text
)。当然,在加载时,您必须使用
convert.FromBase64String(dbValue)
将其转换回
Byte[]
。但是,许多数据库支持以本机方式存储字节数组,因此从技术上讲,您可能根本不需要序列化数据。您的选择。我正在使用一个现有的存储过程,它使用SQL映像列来存储数据。它适用于其他页面,但不适用于我正在尝试创建的新东西。我不明白为什么它只保存
0x
…您可能想发布保存
字节[]
的代码以及存储过程。我建议您发布一个新问题,并确保使用您正在使用的适当数据库系统对其进行标记。@user1477388使用Base 64是一个不错的选择,如果您使用简单的字符串查询,并且不想转义数据,那么折衷的办法是,它比二进制数据多占用约30%,但这可能是值得的。