首页 C# 正文

【C#】string转Unicode十六进制Byte数组并实现高低位互换

方雪墨头像 方雪墨 C# 2023-03-23 13:03:05 0 230

需求:将文本指令转换为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社区

本文地址:https://blog.treecyan.com/?id=6
若非特殊说明,文章均属本站原创,转载请注明原链接。

欢迎 发表评论:

网站分类

标签列表

退出请按Esc键