CRLF、CR、LF詳解

很長一段時間里,對于CRLF、CR、LF的理解僅限于不同操作系統(tǒng)下對換行符的定義。所謂知其然需知其所以然,從學習中找到樂趣,對知識的記憶才會更加深刻。

名詞解釋

  • CR:Carriage Return,對應(yīng)ASCII中轉(zhuǎn)義字符\r,表示回車
  • LF:Linefeed,對應(yīng)ASCII中轉(zhuǎn)義字符\n,表示換行
  • CRLF:Carriage Return & Linefeed,\r\n,表示回車并換行

眾所周知,Windows操作系統(tǒng)采用兩個字符來進行換行,即CRLF;Unix/Linux/Mac OS X操作系統(tǒng)采用單個字符LF來進行換行;另外,MacIntosh操作系統(tǒng)(即早期的Mac操作系統(tǒng))采用單個字符CR來進行換行。

野史

老式機械打字機(來源:視覺中國)

據(jù)野史記載,在很久以前的機械打字機時代,CR和LF分別具有不同的作用:LF會將打印紙張上移一行位置,但是保持當前打字的水平位置不變;CR則會將“Carriage”(打字機上的滾動托架)滾回到打印紙張的最左側(cè),但是保持當前打字的垂直位置不變,即還是在同一行。

當CR和LF組合使用時,則會將打印紙張上移一行,且下一個打字位置將回到該行的最左側(cè),也就是我們今天所理解的換行操作。

隨著時間的推移,機械打字機漸漸地退出了歷史舞臺,當初的紙張變成了今天的顯示器,打字機的按鍵也演變?yōu)榱巳缃竦逆I盤。在操作系統(tǒng)出現(xiàn)的年代,受限于內(nèi)存和軟盤空間的不足,一些操作系統(tǒng)的設(shè)計者決定采用單個字符來表示換行符,如Unix的LF、MacIntosh的CR。他們的意圖都是為了進行換行操作,只是當初并沒有一個國際標準(或者其他原因,鬼知道),所以才有這樣字符上的不同。

結(jié)論

許多現(xiàn)代的文本編輯器和命令行工具都提供了可選擇的換行符配置,方便用戶按照自己的意愿來改變換行符的表現(xiàn)形式,所以我們只需要知道CRLF、CR、LF的作用即可。

參考文獻

http://en.wikipedia.org/wiki/Newline
https://en.wikipedia.org/wiki/Control_character
https://stackoverflow.com/questions/1552749/difference-between-cr-lf-lf-and-cr-line-break-types

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容