C#中byte数组转化为字符串
一个byte数组中存了一些从数据文件中读取的信息,里面有中文也有英文,我如何把它转化成字符串?
------解决方案--------------------调用ENCODING类中的GETSTGRING方法
如:
private string ConvertByteArrayToString(byte [] byteArray)
{
Encoding enc=Encoding.UTF8;
string text=enc.GetString(byteArray);
return text;
}
------解决方案--------------------二楼应该可以
如果得到的结果不正确 可能是字符集设置不正确,一般涉及到中文的字符集是utf8 unicode 和gb2312
byte[] buf=YourByteArray;
System.Text.Encoding.GetEncoding(936).GetString(buf);//gb2312
System.Text.Encoding.UTF8.GetString(buf);
System.Text.Encoding.Unicode.GetString(buf);
------解决方案--------------------另外System.Convert.ToString(byteArray)也可以把byte[]装换为string
但不知道这个东东的用途,在别无选择的时候试试它吧
补充一点,如果你的数据是序列化的,以上方法都不行,需要根据你序列化的形式,反序列化
------解决方案--------------------天哪 这么复杂吗
如果byte[]={0x11,0xff,0x45};
要显示出string= "11 ff 45 ";
用我的方法:
//显示包信息
public string dis_package(byte[] reb)
{
string temp= " ";
foreach(byte b in reb)
temp+=b.ToString( "X2 ")+ " ";
return temp;
}