我正在使用以下代码来确定是否为“。” (句号)已进入网络浏览器控件:
private void body_KeyUp(object sender, HtmlElementEventArgs e)
{
if (e.KeyPressedCode == '.')
{
// Do something
}
}
根据 msdn KeyPressedCode 返回一个 ASCII 值。如果我输入“。”,我通过断点得到的是“190”。然而。这甚至没有在标准 ASCII 表中列出。显然我可以简单地测试 190,但我担心 KeyPressedCode 可能会在具有不同代码页、语言等的不同系统上返回不同的值。
那么您能否解释一下为什么 KeyPressedCode 返回“190”而不是“46”以及如何“安全”地处理这个问题?
有趣的是,''(空格)的返回值总是正确的('32')。使用 System.Text.Encoding.GetEncoding 和不同的代码页并不能解决问题,但是我对代码页没有太多经验。