【问题标题】:How do I get the STX character of hex 02如何获得十六进制 02 的 STX 字符
【发布时间】:2012-03-24 01:22:11
【问题描述】:

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

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

【问题讨论】:

    标签: c# character-encoding hex


    【解决方案1】:

    只是对 GeoffM 的回答的评论(我没有足够的分数来评论正确的方式)。

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        Integer 值 2 转换为 char

        char cChar = (char)2;
        

        【讨论】:

          【解决方案4】:

          \x02 是 STX 代码,您可以查看 the ASCII Table

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

          【讨论】:

            【解决方案5】:

            在一个字符串中,显然是Unicode format is best,但对于用作字节,这种方法有效:

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

            【讨论】:

              【解决方案6】:

              您可以像这样将 STX 嵌入到字符串中:

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2017-04-07
                • 2021-12-22
                • 2013-08-20
                • 1970-01-01
                • 2018-10-30
                • 2019-07-27
                • 1970-01-01
                • 2017-08-23
                相关资源
                最近更新 更多