CRLF那些事儿

Carriage Return(CR), Line Feed(LF)
在以前使用打字机的时候,CR代表将机架移动到最右边(相对地,打字的指针也就复位到最左边),LF代表将机架向上移动,也就是相对地将打字的指针向下移动到新的一行。

为什么把CRLF分为两个操作

  • 打字机的CR操作为其提供了覆写一行文本的能力。这种能力可以用来产生加粗或是注音字符,下划线,划线字符(如: 这样)和一些组合符号。
  • 老式的打字机机架移动很慢,如果先LF,那么在执行CR操作时,打字机没有足够的时间完整打印出字符处理序列的下一个字符,可能会造成一些问题。先执行CR操作的话,下一个字符是LF(也许还有更多的填充字符,打字机处理这些填充字符的操作是不做任何事情),那么就能确保打字机在打印下一个可打印字符前有充足的时间完成CR操作。所以CRLF的顺序是CR然后是LF。
  • 这同时也使得将移动多行操作(例如打印两倍间距,带页头/页尾或是标题的页面)的时间压缩到使用单次CR操作的时间成为可能,这样就不需要处理冗余的CR信号,也就降低了与其相关的额外的电路或机械复杂性,从而使得打字机有更多的时间用来打印和传输。

CRLF的顺序对文本处理软件的影响

现代的打印机应该是没这些问题了,但是这些操作仍保留着。不同的操作系统对换行需要的特殊字符有不同的做法,如果CRLF的字符顺序为LF.CR,那么可能会使得文本处理软件错误的识别换行符(原以CRLF为换行单位的,现在用LF作为换行单位,那么CR就作为特殊字符显示出来了)。

Refer to Carriage return