日期:2014-05-18  浏览次数:20978 次

请问如何将System.byte[]的内容转成字符串输出?
2F00FFFFFFFEEA0000D000FFFFFFFFFF10
0860006356680E0020FFFEFFFFFFFF2F00FFFFFFFEE90000
D000FFFFFFFFFF154F6
8FFFFFED53F057000FFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFF2F00FFFFFFFEE70000D000
FFFFFFFFFF0E8

有个数据表里面装着这样的数据,字段的类型是varbinary类型的,我用c#将数据拿到,打印出来的时候aspx显示的System.byte[],请问怎么将数据显示成上面的样子?

我在网上搜索了很久,实在没办法解决了,按照搜索到的答案,用了下面的方法,我把编码转成 UTF8 UTF7 ACSII UNICODE输出全部是乱码。

byte[] bytes = (byte[])row["gamerule"]; 
Encoding enc =Encoding.UTF8; ....;// 这里得到某个编码对象, 
string s = enc.GetString(bytes);

------解决方案--------------------
C# code

StringBuilder result=new StringBuilder();
foreach(byte b in dataFromDatabase)
{result.Append(b.ToString("X2");}

------解决方案--------------------
不是所有的byte[]都能换成有意义的字符串的。
“gamerule”可以是一个自定义的格式,要来存放游戏规则。

------解决方案--------------------
byte[] bytes = (byte[])row["a"]; 
Encoding enc =Encoding.UTF8; 
string s = enc.GetString(bytes); 
System.Text.Encoding.Default.GetString(bytes );

------解决方案--------------------
?System.BitConverter.ToString(Bytes).Replace ("-","")
"31B2DCD5C5"