我正在通过一些关于控制角色的内容,尤其是换行符(将重点关注此内容) http://en.wikipedia.org/wiki/Control_characters,知道\ n是unix中的行字符 虽然它是\ r \ n在Windows中。现在,我得到了一个问题,即当它出现时,操作系统是如何形成的 ASCII代码becoz当我们在键盘上键入任何给定的字符时,我的印象很深,任何操作系统都会发送相同的字符 位和编辑器解释该位并显示相应的字符。 看起来这种理解是 错误,因为当我们按下ENTER(新行终止符)时,在unix(\ n)和windows(\ r \ n)的情况下发送不同的位。 新的理解,如果我们在差异OS上按ENTER(比如unix和windows),不同的位被发送到编辑器及其 负责文本编辑器显示新行中键入的内容,保持底层操作系统的图片。请允许我 知道我的理解是否正确,因为这也有助于我理解其他基础知识吗?
接下来的问题是,如果上述是正确的,那么不同的操作系统对待某些控制字符的原因可能是不同的 当他们平等对待所有其他角色时? becoz特定位是否已在特定OS中保留?
答案 0 :(得分:1)
实际上,应用程序如何处理键盘输入有点不同。按返回时,应用程序没有义务在任何地方实际生成LF或CR + LF。例如。它可能决定只结束当前段落对象并开始一个新对象(例如在文字处理器中)。如果它是Windows文本编辑器,那么它可能只是将CR + LF写入文件,而在Unix上它只写一个LF。
键盘本身与您在屏幕上甚至在磁盘上看到的内容非常相距甚远。这将通过扫描代码,键盘布局和其他转换,然后在某处作为文本或标记结束。