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

C# 如何获取十六进制02的STX字符,c#,character-encoding,hex,C#,Character Encoding,Hex,我有一个设备,我正试图通过一个插座连接,根据手册,我需要“十六进制02的STX字符” 如何使用C#?您可以使用Unicode字符转义:\u0002将整数值2转换为字符: char cChar = (char)2; 您可以将STX嵌入字符串中,如下所示: byte[] myBytes = System.Text.Encoding.ASCII.GetBytes("\x02Hello, world!"); socket.Send(myBytes); 只是对GeoffM的回答的一点评论(我没有足够的

我有一个设备,我正试图通过一个插座连接,根据手册,我需要“十六进制02的STX字符”


如何使用C#?

您可以使用Unicode字符转义:
\u0002
整数
值2转换为
字符

char cChar = (char)2;

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

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

只是对GeoffM的回答的一点评论(我没有足够的观点来评论正确的方式)

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

如果下一个字符(在“\x02”之后)是一个有效的十六进制数字,那么它也将被解析,这将是一个混乱

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

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

\x02
是可以检查的STX代码


在字符串中,显然是字节,但作为字节使用,这种方法有效:

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