我有一个设备,我试图通过套接字连接,根据手册,我需要“十六进制02的STX字符”。
我怎样才能使用C#?
答案 0 :(得分:13)
只是评论GeoffM的答案(我没有足够的观点来评论正确的方法)。
你绝不应该只用两位数来嵌入STX(或其他字符)。
如果下一个字符(在“\ x02”之后)是一个有效的十六进制数字,那么它也会被解析,这将是一团糟。
string s1 = "\x02End";
string s2 = "\x02" + "End";
string s3 = "\x0002End";
这里,s1等于“.nd”,因为2E是点字符,而s2和s3等于STX +“End”。
答案 1 :(得分:9)
您可以使用Unicode字符转义符:\u0002
答案 2 :(得分:2)
将Integer
值2投射到char
:
char cChar = (char)2;
答案 3 :(得分:1)
\x02
是STX代码,您可以查看the ASCII Table
checkFinal = checkFinal.Replace("\x02", "End").ToString().Trim();
答案 4 :(得分:1)
在一个字符串中,显然是Unicode format is best,但是作为一个字节,这种方法有效:
byte chrSTX = 0x02; // Start of Text
byte chrETX = 0x03; // End of Text
// etc...
答案 5 :(得分:0)
您可以将STX嵌入到字符串中,如下所示:
byte[] myBytes = System.Text.Encoding.ASCII.GetBytes("\x02Hello, world!");
socket.Send(myBytes);