C# 函数string.Substring为什么/如何处理\u0002“;作为一个标志?C中的Unicode字符#

C# 函数string.Substring为什么/如何处理\u0002“;作为一个标志?C中的Unicode字符#,c#,unicode,char,C#,Unicode,Char,函数string.Substring为什么/如何将“\u0002”视为一个符号? 我是说ok,“\u0002”是一个“字符”STX \u说这是unicode C#中的字符和字符串处理使用Unicode编码。char类型表示一个UTF-16代码单元,string类型表示一系列UTF-16代码单元 代码检查preffix后缀是否正确。数据长度并不重要。 前缀是STX,后缀是ETX添加的do数据字符串。 毫无疑问,如何明确地做到这一点(下面的代码) string stx = "\u0

函数string.Substring为什么/如何将“\u0002”视为一个符号? 我是说ok,“\u0002”是一个“字符”STX

  • \u说这是unicode
  • C#中的字符和字符串处理使用Unicode编码。char类型表示一个UTF-16代码单元,string类型表示一系列UTF-16代码单元
  • 代码检查preffix后缀是否正确。数据长度并不重要。 前缀是STX,后缀是ETX添加的do数据字符串。 毫无疑问,如何明确地做到这一点(下面的代码)

        string stx = "\u0002";
        string etx = "\u0003";
        string ReceivedData= stx + "1122334455" + etx;
        
        string prefix = ReceivedData.Substring(0, 1);
        string suffix = ReceivedData.Substring(ReceivedData.Length - 1, 1);
    

    你想知道UTF-16和Unicode的工作机制吗?希望本主题有助于:

    代码段看起来很合理,因为变量是显式命名的,“\u”是Unicode的标志

    string stx = "\u0002";
    string etx = "\u0003";
    
    string prefix = ReceivedData.Substring(0, 1);
    string suffix = ReceivedData.Substring(ReceivedData.Length - 1, 1);
    

    我不确定我是否理解这个问题。什么是“一个标志”?它不是解释为字符
    1
    ,而是解释为。您的字符串是
    ␂1122334455␃结尾(此处不可见的控制字符替换为可见的等效表示)-一个STX字符,后跟10个字符
    1122334455
    ,后跟一个ETX字符,总共12个字符。啊,我看到你编辑了你的问题
    \u0002
    只是单个STX字符的表示,就像
    \u0041
    是字符
    a
    的另一种表示,或者
    \n
    是换行符
    (也可以编写为
    \u000a
    )。在内存中,它不是字面上的
    \
    u
    0
    0
    0
    2
    ,它只是一个字符
    。如果要查找引用,
    \u
    是一个转义序列。请参阅。因此,通过将\u添加到字符串中,我指出编译器应该在\u之后解释/查找unicode中的字符?差不多吧:)谢谢