不同的行结尾有什么理由吗?

时间:2011-12-26 16:25:53

标签: line-endings

为什么用不同操作系统编写的文档有不同的行结尾字符?这个或创作者背后的任何技术原因是因为他们想要的而获得不同的角色。

1 个答案:

答案 0 :(得分:5)

与往常一样,这是历史性的。在计算的早期,当设备驱动程序的概念尚未完全形成时,ASCII文本文件基本上是teleprinters(TTY)的指令。由于设备需要执行两次移动(向下移动额外的线然后将滑架返回到左侧)以添加额外的线,文件中包含两个字符(有时会添加更多字符以使设备有更多时间定位马车。)

早期标准ISOASA/ANSI包含CR+LF组合。

Multics被写入时,它包含了设备驱动程序,可以轻松处理字符到设备的指令,并且确定LF就足够了。设备驱动程序在向设备发送指令时将换行符映射到CR,然后是LF,因此用户只会在文本文件中存储LF。后来大多数现代操作系统(Linux,UNIX,Mac OS X)采用了这种方式,但Windows保留了旧惯例。

值得注意的一个事实是,这些并非早期的两个竞争公约。例如,基于EBCDIC的系统使用字符NEL(0x15)来表示换行符。此外,一些基于ASCII的系统仅使用CR。有关详细信息,请参阅this wikipedia article