計算機中的回車符,換行符,\r , \n, \r\n 區分

'\r'是回車,使光標到行首,(carriage return)

'\n'是換行,使光標下移一格,(line feed)


如下記憶:

\r 是回車,return

\n 是換行,newline


對於換行這個動作,unix下一般只有一個0x0A表示換行("\n"),windows下一般都是0x0D和0x0A兩個字符("\r\n"),蘋果機(MAC OS系統)則採用回車符CR表示下一行(\r)


在Windows中,'\r' 回車,回到當前行的行首,而不會換到下一行,如果接着輸出的話,本行以前的內容會被逐一覆蓋;'\n' 換行,換到當前位置的下一行,而不會回到行首;

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

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

一個直接後果是,Unix/Mac系統下的文件在Windows裏打開的話,所有文字會變成一行;而Windows裏的文件在Unix下打開的話,在每行的結尾會多車一個^M字符。

Dos和windows採用回車+換行CR/LF表示下一行,即^M$($不是換行符的表示,換行符沒有表示出來,$是文本結束EOF的表示)

而UNIX/Linux採用換行符LF表示下一行,即\n

蘋果機(MAC OS系統)則採用回車符CR表示下一行,即\r


CR用符號'\r'表示, 十進制ASCII代碼是13, 十六進制代碼爲0x0D;  LF使用'\n'符號表示, ASCII代碼是10, 十六製爲0x0A.

所以Windows平臺上換行在文本文件中是使用 0d 0a 兩個字節表示, 而UNIX和蘋果平臺上換行則是使用0a或0d一個字節表示.

由於dos風格的換行使用\r\n,把這樣的文件上傳到unix,有些版本的vi不能識別\r,所以vi顯示時在行尾會出現^M出來,但是有些就能識別\r\n,正常顯示回車換行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章