我正在使用字符串在.Net 中编写一些二进制协议消息,除了一种特殊情况外,它大部分都有效。
我要发送的消息是:
String cmdPacket = "\xFD\x0B\x16MBEPEXE1.";
myDevice.Write(Encoding.ASCII.GetBytes(cmdPacket));
(为了帮助解码,这些字节是 253、11、22,然后是 ASCII 字符:)"MBEPEXE1."
。
除非我执行Encoding.ASCII.GetBytes
,否则0xFD
以字节形式出现0x3F
(值 253 更改为 63)。
(我应该指出\x0B
and\x16
被正确解释为Hex 0B
& Hex 16
)
我也试过Encoding.UTF8
and Encoding.UTF7
,无济于事。
我觉得可能有一种很好的简单方法可以在字符串中表达高于 128 的值,并将它们转换为字节,但我错过了它。
有什么指导吗?