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

求16进制形式字符串无变化转换成byte数组
项目需要往串口打印机发送16进制形式的byte

汉子转成16进制形式后,其类型也是String类型的

怎么能把16进制无转换存进byte数组中去呢
求高手

------解决方案--------------------
转换的时候,指定编码类型
------解决方案--------------------
C# code

            string str = "哈哈";
            byte[] buff = System.Text.Encoding.UTF8.GetBytes(str);

------解决方案--------------------
你想要这样?
String str = "0x1B, 0x40, 0x1B, 0x57, 0x00, 0x00, 0x00, 0x00";
String[] str1 = str.Replace(" ","").Split(',');
byte[] b = new byte[str1.Length];
for (int i = 0; i < str1.Length; i++)
{
b[i] = Convert.ToByte(Convert.ToInt32(str1[i], 16));
}
------解决方案--------------------
楼主没事找事,转来转去很浪费时间的
探讨

引用:

可以的
System.Text.Encoding.GetEncoding("GBK")

这样不行的,也是经过转换的
比如我转换得到16进制String str = “0x1B, 0x40, 0x1B, 0x57, 0x00, 0x00, 0x00, 0x00”
变成byte类型的时候是这样的 byte[] b={0x1B, 0x40, 0x1B, 0x……

------解决方案--------------------
探讨
你想要这样?
String str = "0x1B, 0x40, 0x1B, 0x57, 0x00, 0x00, 0x00, 0x00";
String[] str1 = str.Replace(" ","").Split(',');
byte[] b = new byte[str1.Length];
for (int i = 0; i < str1.Length; i++)
{
……