CR, LF, CR/LF區別與關係

前言

在文本處理中,CRCarriage Return),LFLine Feed),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和蘋果平臺上換行則是使用0a0d一個字節表示。code

問題

通常操做系統上的運行庫會自動決定文本文件的換行格式。如一個程序在Windows上運行就生成CR/LF換行格式的文本文件,而在Linux上運行就生成LF格式換行的文本文件。在一個平臺上使用另外一種換行符的文件文件可能會帶來意想不到的問題,特別是在編輯程序代碼時。有時候代碼在編輯器中顯示正常,但在編輯時卻會由於換行符問題而出錯。不少文本/代碼編輯器帶有換行符轉換功能,使用這個功能能夠將文本文件中的換行符在不一樣格式單互換。ip

在不一樣平臺間使用FTP軟件傳送文件時,在ASCII文本模式傳輸模式下,一些FTP客戶端程序會自動對換行格式進行轉換。通過這種傳輸的文件字節數可能會發生變化。若是你不想FTP修改原文件,能夠使用bin模式(二進制模式)傳輸文本。get

參考

http://en.wikipedia.org/wiki/Carriage_return 
http://en.wikipedia.org/wiki/Line_feed軟件

相關文章
相關標籤/搜索