0

感谢您花时间查看这个问题。

如果您按键盘上的“y”键,我的理解是,通过 USB 发送与“y”键相对应的 UTF-8 键码。即十六进制的0x79。

然后计算机将其解释为字母“y”并作为击键发送到活动窗口。

我的问题是,当您将美国键盘插入德国计算机时,为什么按“y”键会导致字母“z”被发送到活动窗口。

现在在德语键盘上,字母“z”位于美国键盘上“y”键所在的位置。但是,如果每个字符都有一个唯一的 UTF-8 代码与之关联,那么按下“y”键肯定会生成“y”键码(0x79),计算机会将其解释为“y”。当然,键盘上那个键的位置应该无关紧要吗?

我认为在某些时候必须进行相互转换以考虑不同的布局。这种相互转换是如何以及在什么时候发生的,它是由键盘中的微控制器完成的,还是由计算机在接收到键码时完成的?

如果存在上述问题,请随时指出上述问题中的任何更广泛的误解。

非常感谢您的时间。

4

1 回答 1

1

您的计算机知道几件事,首先是您的键盘布局,通常会被询问(例如在安装期间的 Ubuntu 中)或由默认键盘驱动程序自动检测(例如在 Windows 中)。第二个是系统语言、首选语言或键盘语言,具体取决于它在操作系统中的名称。

当您插入英文键盘时,系统会将其识别为英文键盘,并会查找您选择的语言并相应地映射按键。我同时输入英语和阿拉伯语,键盘布局完全不同,我所做的只是从任务栏中的键盘图标中选择我现在要输入阿拉伯语,系统仍然使用我的英语键盘,但使用阿拉伯语键盘映射.

希望这能解释清楚!

于 2017-12-19T21:57:43.897 回答