协慌网

登录 贡献 社区

CR LF,LF 和 CR 换行类型之间的区别?

我想知道 CR LF(Windows),LF(Unix)和 CR(Macintosh)换行类型之间的区别(如果可能,还带有示例)。

答案

CR 和 LF 是控制字符,分别编码为0x0D (十进制 13)和0x0A (十进制 10)。

它们用于标记文本文件中的换行符。如您所指出的,Windows 使用两个字符 CR LF 序列。 Unix 仅使用 LF,而旧的 MacOS(OSX 之前的 MacIntosh)则使用 CR。

伪历史的观点:

如 Peter 所示,CR =回车,LF = 换,这两个表达式都起源于旧的打字机 / TTY。 LF 将纸张上移(但保持水平位置不变),CR 返回 “托架”,以便键入的下一个字符将位于纸张的最左侧位置(但在同一行上)。 CR + LF 两者都在做,即准备输入新行。随着时间的流逝,代码的物理语义不再适用,并且由于内存和软盘空间非常宝贵,因此某些 OS 设计人员决定只使用其中一个字符,而彼此之间的交流并不很好。 -)

大多数现代的文本编辑器和面向文本的应用程序都提供选项 / 设置等,这些选项 / 设置允许自动检测文件的行尾约定并相应地显示它。

这是一个很好的总结,我发现:

回车符(CR)字符( 0x0D\r )将光标移动到该行的开头,而无需前进到下一行。在 Commodore 和早期 Macintosh 操作系统(OS-9 和更早版本)中,此字符用作换行符。

换行(LF)字符( 0x0A\n )将光标向下移动到下一行,而不返回到该行的开头。该字符在基于 UNIX 的系统(Linux,Mac OSX 等)中用作换行符

行尾(EOL)序列( 0x0D 0x0A\r\n )实际上是两个 ASCII 字符,是 CR 和 LF 字符的组合。它将光标向下移动到下一行和该行的开头。在大多数其他非 Unix 操作系统(包括 Microsoft Windows,Symbian OS 和其他操作系统)中,此字符用作换行符。

来源

实际上,实际上是关于文件中存储哪些字节。 CR是用于回车(从打字机时代起)的字节码,而LF用于换行的字节码。它仅指代作为行尾标记放置的字节。

像往常一样,在Wikipedia上获取更多信息。