2

为什么在不同操作系统中编写的文档具有不同的行尾字符?这背后是否有任何技术原因,或者创作者只是因为他们想要而放置了不同的角色。

4

1 回答 1

5

像往常一样,这类问题是历史性的。在计算的早期阶段,设备驱动程序的概念尚未完全形成,ASCII 文本文件基本上是用于电传打印机(TTY) 的指令。由于设备需要执行两次移动(输入额外的行以向下移动,然后将托架返回到左侧)以添加额外的行,因此文件中包含两个字符(有时添加更多字符以给设备额外的时间定位托架)。

ISOASA/ANSI结合CR+LF的早期标准。

在编写Multics时,它结合了设备驱动程序,可以轻松地将字符转换为设备指令,并且认为这就LF足够了。设备驱动程序在向设备发送指令时将换行符映射到CR后面LF,因此用户只会存储LF在文本文件中。这后来被大多数现代操作系统(Linux、UNIX、Mac OS X)采用,但保留旧约定的 Windows 除外。

值得注意的一个事实是,这并不是早期仅有的两个相互竞争的公约。例如,基于EBCDIC的系统使用字符NEL(0x15) 来指示换行符。此外,一些基于ASCII的系统,CR单独使用。有关更多详细信息,请参阅此维基百科文章

于 2011-12-26T16:39:38.300 回答