需求:将文本指令转换为Unicode十六进制Byte数组发送到串口

正常是直接通过以下代码即可实现
byte[] sendCmd = Encoding.Unicode.GetBytes("<E测试文字><LDemo><D文本,请求中文><X>");
经过测试发现高低位和文档所写相反,需要对调高低位,参考资料得知
在Encoding里有个属性BigEndianUnicode可以实现对调
所以先构建一个为BigEndianUnicode为true的UnicodeEncoding对象,再GetBytes
UnicodeEncoding unicode = new UnicodeEncoding(true, true);
byte[] sendcmd = unicode.GetBytes("<E测试文字><LDemo><D文本,请求中文><X>");
这个就是对调后的字节了。第一个参数如果为false,就是我们一般用的情况,系统默认的是false。
参考:我怎么实现UNICODE字符的高低位对调呢?-CSDN社区