0

我正在阅读一些有关控制字符的内容,尤其是换行符(将重点介绍这一点)。通过 http://en.wikipedia.org/wiki/Control_characters后,知道 \n 是 unix 中的行字符,而它在 Windows 中是 \r\n。现在我得到了一个问题,当我们在键盘上输入任何给定的字符时,操作系统在解释 ASCII 代码时是如何出现的,因为当我们在键盘上键入任何给定的字符时,任何操作系统都会发送相同的位并且编辑器会解释该位并显示相应的字符。看起来这种理解是错误的,因为当我们按 ENTER(换行符)时,在 unix(\n) 和 windows(\r\n) 的情况下会发送不同的位。根据新的理解,如果我们在 diff OS(说unix和windows),不同的位被发送到编辑器及其文本编辑器的责任,以在新行中显示键入的内容,保持底层操作系统在图片中。请让我知道我的理解是否正确,因为这将有助于我理解其他基础也是?

下一个问题是如果上面是正确的,当不同的操作系统平等地对待所有其他字符时,不同的操作系统对待某些控制字符的原因是什么?是不是因为特定的位已经在特定的操作系统中保留了?

4

1 回答 1

1

实际上,应用程序处理键盘输入的方式略有不同。当您按下返回时,应用程序没有义务在任何地方实际生成 LF 或 CR+LF。例如,它可能决定结束当前段落对象并开始一个新对象(例如在文字处理器中)。如果它是 Windows 文本编辑器,那么它可能只会将 CR+LF 写入文件,而在 Unix 上它只会写入 LF。

它们的键盘本身与您在屏幕甚至磁盘上看到的东西相距甚远。这需要经过扫描代码、键盘布局和其他转换,然后才能在某处以文本或标记形式结束。

于 2012-10-02T10:48:09.523 回答