不同作業系統中的換行符
阿新 • • 發佈:2019-01-01
文章目錄
一、不同作業系統下換行符的顯示
換行符在 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
顯示)。