很抱歉,如果这是重复的邮件,我很搜索。我将在下面发布一些我尝试过的事情。
我正在使用Entity Framework从SQL Server数据库中提取一个varbinary列。实体框架返回byte[]
。
当我使用SSMS查询数据库时,这就是我得到的(也是我试图在C#中得到的):0x540FA51A000706010096000B64FFAEC1
数据库编码为UTF8。提前致谢。
以下是我尝试过的一些事情:
public static string ByteArrayToString(byte[] ba)
{
StringBuilder hex = new StringBuilder(ba.Length * 2);
foreach (byte b in ba)
hex.AppendFormat("{0:x2}", b);
return hex.ToString();
}
public static string ByteArrayToString(byte[] ba)
{
if (BitConverter.IsLittleEndian)
Array.Reverse(ba);
string hex = BitConverter.ToString(ba);
return hex.Replace("-", "");
}
private static string ByteArrayToHex(byte[] barray)
{
char[] c = new char[barray.Length * 2];
byte b;
for (int i = 0; i < barray.Length; ++i)
{
b = ((byte)(barray[i] >> 4));
c[i * 2] = (char)(b > 9 ? b + 0x37 : b + 0x30);
b = ((byte)(barray[i] & 0xF));
c[i * 2 + 1] = (char)(b > 9 ? b + 0x37 : b + 0x30);
}
return new string(c);
}