微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么/如何函数 string.Substring 将“\u0002”视为一个符号? C#

如何解决为什么/如何函数 string.Substring 将“\u0002”视为一个符号? C#

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

  1. \u 表示这是 unicode
  2. C# 中的字符和字符串处理使用 Unicode 编码。 char 类型表示一个 UTF-16 编码单元,string 类型表示一个 UTF-16 编码单元序列。

代码检查前缀是否正确。数据长度无关紧要。 前缀是 STX ,后缀是 ETX 添加的数据字符串。 毫无疑问,如何明确地执行此操作(下面的代码)?

    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 的工作机制吗?可能这个话题有帮助: What is Unicode,UTF-8,UTF-16?

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

string stx = "\u0002";
string etx = "\u0003";

string prefix = ReceivedData.Substring(0,1);
string suffix = ReceivedData.Substring(ReceivedData.Length - 1,1);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。