如何获取十六进制02的STX字符

本文关键字:STX 字符 十六进制 何获取 获取 | 更新日期: 2023-09-27 18:27:06

我有一个设备,我正试图通过套接字连接到它,根据手册,我需要"十六进制02的STX字符"。

我如何使用C#来做到这一点?

如何获取十六进制02的STX字符

只是对GeoffM的回答的一个评论(我没有足够的分数以正确的方式进行评论)。

您不应该只使用两位数字以这种方式嵌入STX(或其他字符)。

如果下一个字符(在"''x02"之后)是一个有效的十六进制数字,那么它也会被解析,并且会一团糟。

string s1 = "'x02End";
string s2 = "'x02" + "End";
string s3 = "'x0002End";

这里,s1等于".nd",因为2E是点字符,而s2和s3等于STX+"End"。

您可以使用Unicode字符转义:'u0002

Integer值2转换为char:

char cChar = (char)2;

'x02是STX代码,您可以检查ASCII表

checkFinal = checkFinal.Replace("'x02", "End").ToString().Trim();

在字符串中,Unicode格式显然是最好的,但对于用作字节,这种方法有效:

byte chrSTX = 0x02; // Start of Text
byte chrETX = 0x03; // End of Text
// etc...

您可以将STX嵌入字符串中,如下所示:

byte[] myBytes = System.Text.Encoding.ASCII.GetBytes("'x02Hello, world!");
socket.Send(myBytes);