1. 程式人生 > >不同作業系統中的換行符

不同作業系統中的換行符

文章目錄

一、不同作業系統下換行符的顯示

換行符在 Windows 和 Linux 等系統中的顯示符號是不一樣的。

作業系統 換行符
Windows \r\n,回車加換行
類 Unix \n,換行
Mac \r
,回車
  • \r 表示回車,即 CR (carriage return)
  • \n 表示換行,即 LF (linefeed)

二、關於不同換行符的來歷

1、回車和換行

計算機還沒有出現之前,使用的是電傳打字機來打字(就是上一篇文章中提到的 Teletypewriter)。

電傳打字機每秒鐘可以打10個字元。但是它有一個問題,就是打完一行換行的時候要用掉0.2秒,正好可以打兩個字元。
如果在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將會丟失。

於是科學家想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元,回車和換行:

回車,符號 \r;是告訴打字機把列印頭定位在左邊界;

換行,符號 \n;是告訴打字機把紙張向下方移動一行;

這就是 回車和 換行 的來歷。

2、不同系統下的實現方式

後來,計算機發明瞭,回車和換行的概念就被用到了計算機上。當時儲存器很貴,一些科學家認為在每行結尾加兩個字元太浪費空間了,於是,就出現了分歧。

類 Unix 系統裡,每行結尾只有“<換行>”,即“\n”;

Windows系統裡面,每行結尾是“<回車><換行>”,即“ \r\n”;

Mac系統裡,每行結尾是“<回車>”,即“\r”。

在類 Unix 系統中,遇到換行符 \n,就會自動加上\r實現 回車+換行 的操作;

在 Mac 系統中,遇到回車符 \r,就會自動加上\n

實現 回車+換行 的操作;

所以,在開啟其它系統的檔案時,有可能不會正常顯示換行。

3、可能會出現的問題

因為換行符的問題,在一個系統下編輯的檔案放到另一個系統下時,可能會顯示不正常。

常見的會有以下兩種情況:

  • 在類 Unix 系統或 Mac 系統中編輯的檔案,在 Windows 記事本中多行文字會變成一行(但是有些智慧編輯器會自動識別不同系統的換行符,並進行轉換,如 UE、Notepad++)。
  • 在 Windows 記事本中編輯的檔案,在其它系統中會多顯示一個控制字元 ^M(在 Linux 中,回車符 \r會作為控制字元 ^M顯示)。