问题描述
为什么/如何函数 string.Substring 将“\u0002”视为一个符号? 我的意思是,“\u0002”是一个“字符”STX。
代码检查前缀是否正确。数据长度无关紧要。 前缀是 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);