我正在编写一个程序问题。我可以使用常规ASCII通过SerialPort传递命令,格式为:"< ID01>< PA>这是一个测试"。并将回车符和换行符附加到C#形式的字符串末尾:
string cmd = string.Format("{0}\r\n", command);
这很好用,它产生了预期的效果,我遇到的问题是连接到SerialPort的设备的返回响应。它应该返回一个类似于我发送给它的字符串的简单字符串响应。
<ID01>S
这是成功接收命令的响应,我正在尝试将其显示在表单上的文本框中,因此用户知道每件事情都很顺利。
但是当我尝试显示字符串时,它会在字符串的前面和后面添加一个字符,我不知道如何剥离字符串,这些不是常规字符串字符,如果我的图像上传到此消息右侧,您将在Text Visualizer Value Box中看到我正在谈论的字符。他们看起来就像在线的开头一个双引号!!然后在最后一个填充块三角形&lt;
有谁知道如何从我的字符串中删除这些字符以发送到我的文本框?出于好奇,任何人都可以告诉我这些角色是什么?
感谢您的回复 路线大师
答案 0 :(得分:3)
我猜你的设备会返回一些ascii控制字符。您可以使用正则表达式删除它们:
output = Regex.Replace(output, @"[^\u0020-\u007F]", String.Empty);
答案 1 :(得分:0)
尝试子串方法:
public static string TrimFirstAndLastCharacter(string input) { // Input is "!<ID01>S"
string output = input.Substring(1, input.length - 2);
return output;
}