\r\n的區別
阿新 • • 發佈:2018-10-31
不同系統上敲”Enter”鍵產生的字元:
Windows | 類Unix |
---|---|
\r\n | \n |
符號 | ASCII碼 | 縮寫 | 意義 |
---|---|---|---|
\n | 10 | LF(Line Feed) | 換到當前位置的下一行,而不會回到行首 |
\r | 13 | CR(Carriage Return) | 回到當前行的行首,而不會換到下一行,如果接著輸出的話,本行以前的內容會被逐一覆蓋 |
現給出如下的python程式碼:
print("this is the first line",end='\n')
print("this is the second line",end='\r')
print("this is the third line",end='\n')
print("this is the fourth line",end='\r')
print("this is the fifth line",end='\n')
print("end")
結果如下圖所示:
在類Unix系統中,每行結尾只有 \n
\r\n
。一個直接後果是,類Unix(例如Mac、Linux)系統的檔案在Windows裡開啟的話,所有的文字會變成一行;而Windows裡的檔案在類Unix系統下開啟的話,\r
會被替換為 ^M
符號。
原因如下:
類Unix中遇到 \n
會進行回車+換行的操作,回車符反而會因為無法解析而變成 ^M
顯示,不發生回車的操作。而Windows中需要 \r\n
才能實現回車+換行,缺少一個控制符或者順序不對都不能正確的另起一行。