理解CR/LF/CRLF

CR、LF、CRLF是什么

  • CR:Carriage Return,对应ASCII转义字符\r,表示回车
  • LF: Linefeed,表示ASCII转义字符\n,表示换行
  • CRLF: Carriage Return & Linefeed, 即\r\n

在Windows系统中使用\r\n(即CRLF)表示回车换行;
在Unix/Linux/Mac 操作系统中则使用\n(即LF)表示换行;
在Maclntosh操作系统(早期的Mac操作系统)中,使用\r(即CR),表示换行。

为什么会出现CR/LF/CRLF

在很久以前的机械打字机时代,CR和LF分别具有不同的作用:LF会将打印纸张上移一行位置,但是保持当前打字的水平位置不变;CR则会将“Carriage”(打字机上的滚动托架)滚回到打印纸张的最左侧,但是保持当前打字的垂直位置不变,即还是在同一行。

当CR和LF组合使用时,则会将打印纸张上移一行,且下一个打字位置将回到该行的最左侧,也就是我们今天所理解的换行操作。

虽然现在机械打字机渐渐地退出了历史舞台。但是回车换行在计算机操作系统中确实必要的,而在计算机中回车换行实则为同样的结果,不再像打字机那样了,计算机的回车换行都是切换到下一行的行首位置了。在操作系统出现的年代,一些操作系统的设计者决定采用单个字符来表示换行符(也许是受限于内存和软盘空间的不足),如Unix的LF、MacIntosh的CR;但是想windows则是使用两个字符表示。他们的意图都是为了进行换行操作,只是当初并没有一个国际标准,所以才有这样字符上的不同。

 附

在使用开发编写代码中,有时候会遇到文件使用了不同的回车换行符,而导致明明没有改动代码,但是却提示代码有变更。此时我们只需确定使用统一的回车换行符即可。通常windows下使用的是CRLF.

posted on 2021-10-20 23:21  john_yong  阅读(967)  评论(0编辑  收藏  举报

导航