我想知道CR LF(Windows),LF(Unix)和CR(Macintosh)換行類型之間的區別(若是可能,還帶有示例)。 git
實際上,其實是關於文件中存儲哪些字節。 CR
是用於回車(從打字機時代起)的字節碼,而LF
用於換行的字節碼。 它僅指代做爲行尾標記放置的字節。 編輯器
與往常同樣,在Wikipedia上獲取更多信息。 編碼
CR和LF是控制字符,分別編碼爲0x0D
(十進制13)和0x0A
(十進制10)。 spa
它們用於標記文本文件中的換行符。 如您所指出的,Windows使用兩個字符CR LF序列。 Unix僅使用LF,而舊的MacOS(OSX以前的MacIntosh)使用CR。 操作系統
僞歷史的觀點: 設計
正如Peter所指出的 ,CR = 回車 ,LF =換行 ,這兩個表達式都起源於舊的打字機/ TTY。 LF向上移動紙張(但保持水平位置不變),CR返回「托架」,以便鍵入的下一個字符將位於紙張的最左側位置(但在同一行上)。 CR + LF二者都在作,即準備輸入新行。 隨着時間的流逝,代碼的物理語義再也不適用,而且因爲內存和軟盤空間很是寶貴,所以某些OS設計人員決定只使用其中一個字符,而彼此之間的交流並不很好。 -) code
大多數現代的文本編輯器和麪向文本的應用程序都提供選項/設置等,這些選項/設置容許自動檢測文件的行尾約定並相應地顯示它。 ip
基於ASCII或兼容字符集的系統分別使用LF(換行,0x0A,十進制10)或CR(回車,0x0D,十進制13)或CR後跟LF(CR + LF,0x0D 0x0A); 這些字符基於打印機命令:換行指示應將一行紙從打印機中送出,回車指示打印機托架應返回到當前行的開頭。 內存
這是細節 。 ci
這是一個很好的總結,我發現:
回車符(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和其餘操做系統)中,此字符用做換行符。
CR-ASCII碼13
LF-ASCII碼10。
理論上CR將光標返回到第一個位置(在左側)。 LF向下移動一行,將光標移入一行。 過去,這就是您控制打印機和文本模式監視器的方式。 這些字符一般用於標記文本文件中的行尾。 不一樣的操做系統使用不一樣的約定。 如您所指出的,Windows使用CR / LF組合,而OSX以前的Mac僅使用CR等。