有这样一个字节数组:
byte[] b={104,1,2,3,4,5,6,104,81,0,10,6,10,17,10,0,6,10,17,10,0,150,22};
转成字符串:
string s=System.Text.Encoding.Default.GetString(b);
//s的内容为:hhQ\0\n\n\n\0\n\n\0?
//其s的长度为22,原字节数组长度为23,少了一个。
//再从s转成字节数组
byte[] bs=System.Text.Encoding.GetEncoding("GB2312").GetBytes(s);
//bs的值变成了:{104,1,2,3,4,5,6,104,81,0,10,6,10,17,10,0,6,10,17,10,0,63}
//与原来的b不相同了
诚:向大家请教:如何把一个字节数组转成字符串,再从字符串转成字节数组
且请告诉我为什么会这样原因,谢谢?
byte[] b={104,1,2,3,4,5,6,104,81,0,10,6,10,17,10,0,6,10,17,10,0,150,22};
转成字符串:
string s=System.Text.Encoding.Default.GetString(b);
//s的内容为:hhQ\0\n\n\n\0\n\n\0?
//其s的长度为22,原字节数组长度为23,少了一个。
//再从s转成字节数组
byte[] bs=System.Text.Encoding.GetEncoding("GB2312").GetBytes(s);
//bs的值变成了:{104,1,2,3,4,5,6,104,81,0,10,6,10,17,10,0,6,10,17,10,0,63}
//与原来的b不相同了
诚:向大家请教:如何把一个字节数组转成字符串,再从字符串转成字节数组
且请告诉我为什么会这样原因,谢谢?
System.Text.Encoding.Default.GetString();
字符串转成字节数组:
System.Text.Encoding.Default.GetBytes();
只是发帖子时还在调试,不小心帖错了:)
其实结果都是一样的-->不能正确从字符串返回到字符数组。
To:liangxf0022(小新) 是字符串少一位,而不是字符串多一位。To:viena(维也纳nn) 我的目是向串口发送数据,因使用的控件限制,发送的数据必须是字符串格式(不能更换串口控件),但我现在就有这样的一个字节数组,请问,有怎样才能转换成字符串发送出去呢?谢谢
string str = BitConverter.ToString(b);
string str = "68-01-02-03-04-05-06-68-51-00-0A-06-0A-11-0A-00-06-0A-11-0A-00-96-16";
string[] astr = str.Split('-');
byte[] abt = new byte[astr.Length];
for(int i=0;i<abt.Length;i++)
{
abt[i] = Convert.ToByte(astr[i],16);
}
如:68,接收到后,为:36 38
6的ASCII-->36
8的ASCII-->38
本来0X68作为一个字节发送,但接收到后,把0x68当成了“68”,然后按位转成ASCII,成了36 38了 ):我该怎么办
string s = "";
s += (char)36;
s += (char)38;//s="68"