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



我需要将这个字节转换为字符串:

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",如何更好地做到这一点?

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

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);

最新更新