当我在字符串中转换字节时有很多不必要的信息c#

时间:2017-03-23 13:37:59

标签: c# encoding byte

我需要在字符串中转换这个字节:

var smallDCWBytes = new byte[]
         {
              0xFE, 0x00, 0x00, 0xEF, 0xFF, 0xF8, 0x24, 0x16, 0x01, 0x04, 0x00, 0x00, 0x66, 0x37, 0x58, 0xCA,
              0xB8, 0x82, 0x00, 0x80, 0x53, 0x6D, 0x61, 0x6C, 0x6C, 0x20, 0x44, 0x43, 0x57, 0x20, 0x52, 0x65,
              0x63, 0x65, 0x69, 0x76, 0x65, 0x64
         };

var localDCWResponseText = System.Text.Encoding.ASCII.GetString(smallDCWBytes).Trim();

这是我收到的答案: “?\ 0 \ 0 ??? $ \ u0016 \ u0001 \ u0004 \ 0 \ 0f7X ??? \ 0?收到小DCW”

我只需要“收到小DCW”, 怎么做更好的方法呢?

1 个答案:

答案 0 :(得分:1)

实际上它正在执行请求,因为它正在转换数组的每个字节。 您可以使用:

var smallDCWBytes = new byte[]
     {
          0x53, 0x6D, 0x61, 0x6C, 0x6C, 0x20, 0x44, 0x43, 0x57, 0x20, 0x52, 0x65,
          0x63, 0x65, 0x69, 0x76, 0x65, 0x64
     };

var localDCWResponseText = System.Text.Encoding.ASCII.GetString(smallDCWBytes);

或者,如果您被迫使用该数组,您可以执行以下操作:

var smallDCWBytes = new byte[]
     {
          0xFE, 0x00, 0x00, 0xEF, 0xFF, 0xF8, 0x24, 0x16, 0x01, 0x04, 0x00, 0x00, 0x66, 0x37, 0x58, 0xCA,
          0xB8, 0x82, 0x00, 0x80, 0x53, 0x6D, 0x61, 0x6C, 0x6C, 0x20, 0x44, 0x43, 0x57, 0x20, 0x52, 0x65,
          0x63, 0x65, 0x69, 0x76, 0x65, 0x64
     };

var localDCWResponseText = System.Text.Encoding.ASCII.GetString(smallDCWBytes).Substring(21,18);