我想知道两者之间的区别(如果可能的话,请举例说明) CR LF (Windows)、LF (Unix)和CR (Macintosh)三种换行类型。


当前回答

CR - ASCII码13

LF - ASCII码10。

理论上CR将光标返回到第一个位置(左侧)。LF输入一行移动光标一行。在过去,你就是这样控制打印机和文本模式显示器的。 这些字符通常用于标记文本文件中的行结束。 不同的操作系统使用不同的约定。正如你指出的,Windows使用CR/LF组合,而在osx之前的mac只使用CR等等。

其他回答

基于ASCII或a的系统 兼容字符集使用任意LF (换行,0x0A, 10 十进制)或CR(回车,0x0D,十进制13) 单独,或CR后面跟着 LF (CR+LF, 0x0D 0x0A); 这些字符基于打印机命令:换行 表示了一行 纸张应从打印机中送出,并有一个马车返回 显示打印机 回车应返回到当前行的开头。

这是细节。

CR和LF是一组特殊的字符,帮助我们格式化代码。

CR(/r)代表回车。它将光标放在一行的开头,但不创建新行。这就是MAC OS的工作原理。 LF(/n)表示换行。它创建了一个新行,但没有把光标放在该行的开头。光标停留在最后一行的末尾。这就是Unix和Linux的工作原理。 CRLF (/r/f)创建新行,并将光标放在新行开头。这就是我们在Windows操作系统中看到的情况。

Git默认使用LF。所以当我们在Windows上使用Git时,它会抛出一个警告,比如“CRLF将被LF取代”,并自动将所有CRLF转换为LF,这样代码就变得兼容了。 注意:别担心…不要把这看作是一个警告,而要把它看作是一个提醒。

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

回车符(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和其他操作系统)中用作新行字符。

NL源自EBCDIC NL = x'15',这将在逻辑上与CRLF x'odoa ascii进行比较…当将数据从大型机物理移动到中端时,这一点变得非常明显。口头上(只有奥术人士才会使用缩略语),NL已经等同于CR或LF或CRLF

CR - ASCII码13

LF - ASCII码10。

理论上CR将光标返回到第一个位置(左侧)。LF输入一行移动光标一行。在过去,你就是这样控制打印机和文本模式显示器的。 这些字符通常用于标记文本文件中的行结束。 不同的操作系统使用不同的约定。正如你指出的,Windows使用CR/LF组合,而在osx之前的mac只使用CR等等。