首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

換行符之謎:為什麼記事本顯示 \n 變成兩行,而控制台正常?

     編輯:程式設計綜合問答

現象描述

在記事本中輸入單一 \n(LF,ASCII 10),顯示卻換了兩行;但在控制台程式中 \n 只換一行。書上說 Windows 換行是 \r\n(CRLF),這到底怎麼回事?

核心解釋

  • Windows 記事本(舊版):只識別 \r\n 為換行。單獨的 \n 不被視為換行,但會在內部渲染時產生異常顯示(舊版本會將 \n 視為換行並保留 \r 導致雙行)。
  • 現代編輯器(VS Code、Notepad++、新版記事本):支援 \n、\r\n、\r 多種格式自動檢測。
  • 控制台/終端機:通常將 \n 直接視為換行(LF 即換行),不需要 \r。
  • 程式語言層面:C/C++/Java/Python 等在文字模式下讀寫檔案時,會自動轉換 \n ⇄ \r\n(Windows)或保持 \n(Linux)。

ASCII 碼對照

符號名稱ASCII
\nLine Feed (LF)10
\rCarriage Return (CR)13
\r\nCRLF (Windows 標準)13,10

實務建議

  • 跨平台專案統一使用 \n(LF),透過 Git 設定 core.autocrlf 處理轉換。
  • Windows 專用文字檔案可存為 \r\n,確保記事本相容。
  • 程式中處理換行時,優先用 Environment.NewLine(.NET)或 System.lineSeparator()(Java)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved