聲明
本文轉自:CR和LF - 田野與天 - 博客園 (cnblogs.com)
以下為正文
現在的電腦操作系統主要有windows、unix/linux、macos這三種。
首先,
回車:英文(carriage return ),縮寫CR
換行:英文(line feed),縮寫LF
在window中,在一個文本結尾常常使用“《回車》《換行》”,"<CR><LF>"或者說是“\r\n”來表示一行結束
在unix和linux系統中,使用的是“《換行》”,"<LF>"或者說是"\n"來表示一行結束
在macos中,使用的是“《回車》”,"<CR>"或者說是"\r"來表示一行結束
然后,讓我們看一下ASCII碼表
這三者不統一會造成啥問題呢?
最多的就是,當一個文本文件從一個系統移動到另外一個系統的時候,會出現問題。舉幾個小的例子吧:
例子一:下面的淺色字體(\r\n)表示其實用戶並不可見
在windows下有一個文件,內容是這樣的:
first line\r\n
second line\r\n
third line\r\n
這個文件到了unix/linux下的話,就會出問題,因為unix/linux只認識"\n",不認識"\r",所以用vim打開以后,文件是這樣的
我是第一行^M\n
我是第二行^M\n
我是第三行^M\n
用戶就會莫名看到多出來了一些^M在文件的末尾,不知道的以為文件亂碼了,其實並不是的。
補充
Linux下去掉^M的四種方法 - 習慣沉淀 - 博客園 (cnblogs.com)