1. 程式人生 > >\r\n的區別

\r\n的區別

不同系統上敲”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

;在Windows系統中,每行結尾為 \r\n 。一個直接後果是,類Unix(例如Mac、Linux)系統的檔案在Windows裡開啟的話,所有的文字會變成一行;而Windows裡的檔案在類Unix系統下開啟的話,\r 會被替換為 ^M 符號。

原因如下:

    類Unix中遇到 \n 會進行回車+換行的操作,回車符反而會因為無法解析而變成 ^M 顯示,不發生回車的操作。而Windows中需要 \r\n 才能實現回車+換行,缺少一個控制符或者順序不對都不能正確的另起一行。