我想知道CR LF (Windows),LF (Unix)和CR (Macintosh)换行符类型之间的区别(如果可能的话,请举例说明)。
发布于 2009-10-12 04:52:29
它实际上只是关于文件中存储了哪些字节。CR是用于回车的字节码(来自打字机时代),LF类似地用于换行符。它只是指作为行尾标记放置的字节。
更多信息,一如既往地在wikipedia上。
发布于 2009-10-12 04:52:45
CR和LF是控制字符,分别编码为0x0D (十进制13)和0x0A (十进制)。
它们用于在文本文件中标记换行符。正如您所指出的,Windows在CR LF序列中使用两个字符;Unix只使用LF,而旧的MacOS (OSX之前的MacIntosh)使用CR。
:虚构的历史视角:
As indicated by Peter,CR =回车符和LF =换行符,这两个表达式都源于旧的打字机/ TTY。LF将纸张向上移动(但保持水平位置不变),CR返回“回车”,以便键入的下一个字符将位于纸张的最左侧位置(但在同一行上)。CR+LF同时做了这两件事,即准备键入新行。随着时间的推移,代码的物理语义不再适用,由于内存和软盘空间非常宝贵,一些操作系统设计人员决定只使用其中一个字符,他们只是不能很好地相互沟通;-)
大多数现代文本编辑器和面向文本的应用程序都提供了选项/设置等,允许自动检测文件的行尾约定并相应地显示它。
发布于 2009-10-12 04:54:26
这是我发现的一个很好的总结:
回车(CR)字符(0x0D、\r)将光标移至行首,而不移至下一行。此字符在Commodore和早期Macintosh操作系统(OS-9及更早版本)中用作换行符。
换行符(LF)字符(0x0A、\n)将光标向下移动到下一行,而不返回到行首。此字符在基于UNIX的系统(Linux、Mac OSX等)中用作换行符
行尾序列(0x0D 0x0A、\r\n)实际上是两个ASCII码字符,是CR和LF字符的组合。它将光标向下移动到下一行和该行的开头。此字符在大多数其他非Unix操作系统中用作换行符,包括Microsoft Windows、Symbian OS和其他操作系统。
Source
https://stackoverflow.com/questions/1552749
复制相似问题