如何将ctrl+z
转换为字符串?
我将此作为AT COMMAND发送到此计算机的连接设备。
基本上,我只是将一些字符放在一个字符串中,ctrl+z
也放在该字符串中
答案 0 :(得分:7)
您可以使用\u
转义嵌入任何Unicode字符:
"this ends with ctrl-z \u001A"
答案 1 :(得分:3)
byte[] buffer = new byte[1];
buffer[0] = 26; // ^Z
modemPort.Write(buffer, offset:0, count:1);
答案 2 :(得分:3)
尝试以下内容适用于您
serialPort1.Write("Test message from coded program" + (char)26);
也尝试可能适合你
serialPort1.Write("Test message from coded program");
SendKeys.Send("^(z)");
还要检查:http://www.dreamincode.net/forums/topic/48708-sending-ctrl-z-through-serial/
答案 3 :(得分:2)
从其他回复可以清楚地看出,Ctrl + Z的ASCII码为26;一般来说Ctrl + [letter]组合的ASCII码等于1+ [letter] - 'A'即Ctrl + A有ASCII码1(\ x01或\ u0001),Ctrl + B有ASCII码2等等。
答案 4 :(得分:1)
将字符发送到设备时,需要从内部字符串表示进行转换。这称为Encoding
- 编码器将字符串转换为字节数组。
咨询Unicode Character Name Index,我们在SUBSTITUTE - 0x001A
(ASCII标点符号)部分找到C0 Controls and Basic Latin
字符。
要将CTRL-Z
添加到内部C#字符串,
添加unicode character escape sequence(\u001a
)代码。
String ctrlz = "\u001a";
String atcmd = "AT C5\u001a";
在输出到设备之前用于转换的任何编码
(例如使用StringWriter
输出),将其转换为ASCII Ctrl-Z。