我发现还有一个额外的字符需要转义 - ~(波浪号)。我创建了一个包含所有低位和高位 ASCII 的文本文件,并使用此代码来处理文本:
foreach (char c in pString) {
if (c.ToString() == "(")
SendKeys.SendWait("{(}");
else if (c.ToString() == ")")
SendKeys.SendWait("{)}");
else if (c.ToString() == "^")
SendKeys.SendWait("{^}");
else if (c.ToString() == "+")
SendKeys.SendWait("{+}");
else if (c.ToString() == "%")
SendKeys.SendWait("{%}");
else if (c.ToString() == "~")
SendKeys.SendWait("{~}");
else if (c.ToString() == "{")
SendKeys.SendWait("{{}");
else if (c.ToString() == "}")
SendKeys.SendWait("{}}");
else
SendKeys.SendWait(c.ToString());
}
这是测试文本:
快速棕色狐狸跳过懒狗 123-456-7890 快速棕色狐狸跳过懒狗。敏捷的棕色狗:跳过;懒狗!¿ 狗跳了吗?¡ 价值约为 200+- - 那是一个破折号!当然,在 - 小写 - 波浪号下面有那个奇怪的符号。[这是一个脚注] 但我无法为 {花括号} 找借口。当然,我们知道(左括号和右括号都可以忽略)。我们需要发送电子邮件至 edgar@something.com 让他寄给我 1 美元,这大约是实际价值的 50%。显然有 3 个修饰符会失败: ^ the caret; + 加号;% 百分号;。我们还需要查看 & & 符号、*(星号)和 _ 下划线;然后是 = 等号和:冒号。如果我们在句子中间插入一个制表符会发生什么?那么我们当然可以有一个 | 竖线或 \ 反斜杠更不用说 / 正斜杠了。以上都是一行,后面跟着一个新行开始句子。好吧,我错过了什么我 # 英镑符号
在最后一段话之后,这开始了一个新的段落。最重要的是,上面有一个可信的蜡球——至少大部分是——“低 ASCII”——它涵盖了开始和结束引号,但不包括“卷曲”引号——它们是撇号。然后当然还有“高位 ASCII”: € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž ' ' “” • – — ∼ ™ š › œ ž Ÿ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ 更不用说数十甚至数十万个 Unicode 字符了!