前言
在文本處理中,CR(CarriageReturn),LF(LineFeed),CR/LF是不同操作系統上使用的換行符,具體如下:
- Dos和Windows采用回車+換行
CR/LF
表示下一行 - 而UNIX/Linux采用換行符
LF
表示下一行 - 蘋果機(MAC OS系統)則采用回車符
CR
表示下一行
區別
CR與LF區別如下:
- CR用符號
r
表示,十進制ASCII代碼是13
,十六進制代碼為0x0D
- LF使用
n
符號表示,ASCII代碼是10
,十六制為0x0A
所以Windows平台上換行在文本文件中是使用0d 0a
兩個字節表示,而UNIX和蘋果平台上換行則是使用0a
或0d
一個字節表示。
問題
一般操作系統上的運行庫會自動決定文本文件的換行格式。如一個程序在Windows上運行就生成CR/LF
換行格式的文本文件,而在Linux上運行就生成LF
格式換行的文本文件。在一個平台上使用另一種換行符的文件文件可能會帶來意想不到的問題,特別是在編輯程序代碼時。有時候代碼在編輯器中顯示正常,但在編輯時卻會因為換行符問題而出錯。很多文本/代碼編輯器帶有換行符轉換功能,使用這個功能可以將文本文件中的換行符在不同格式單互換。
在不同平台間使用FTP軟件傳送文件時,在ASCII文本模式傳輸模式下,一些FTP客戶端程序會自動對換行格式進行轉換。經過這種傳輸的文件字節數可能會發生變化。如果你不想FTP修改原文件,可以使用bin模式(二進制模式)傳輸文本。