| 符號 | 名稱 | ASCII | Windows | Linux/Unix | Mac OS 9- |
|---|---|---|---|---|---|
\n | Line Feed (LF) | 0x0A (10) | 換行+歸位 | 僅換行 | 僅換行 |
\r | Carriage Return (CR) | 0x0D (13) | 僅歸位 | 僅歸位 | 換行+歸位 |
\t | Horizontal Tab (HT) | 0x09 (9) | 移至下一欄位 | ||
"..."、Heredoc <<<EOF:跳脫字元**解析生效**。'...':跳脫字元**視為字面字元**,'\n' 就是反斜線加 n 兩個字元。\r\n (CRLF)\n (LF)\r (CR)跨平台傳輸檔案時,Git/編輯器/傳輸工具常自動轉換,若未處理會出現:
^M(多餘 CR)1960 年代 Teletype Model 33 每秒打 10 字元,換行需 0.2 秒(相當於 2 字元時間)。為免丟字,工程師在每行尾加兩字元:
後來儲存空間昂貴,各系統決定只保留一個:
\n)\r\n)\r)#include <iostream>
int main() {
std::cout << "hahaha" << "\r" << "xixi"; // 輸出:xixi(hahaha 被覆蓋)
std::cout << "hahaha" << "\n" << "xixi"; // 輸出:hahaha\nxixi
}
\r 只移動游標至行首,**不換行**,後續輸出覆蓋前內容。\n 在 Windows C 執行期庫會自動轉為 \r\n,故表現為換行+歸位。nl2br() 或 CSS white-space: pre-wrap,勿直接輸出 \n。$content = str_replace(["\r\n", "\r"], "\n", $content); 統一為 LF 再處理。PHP_EOL 只代表**當前執行環境**的換行,寫入跨平台共享檔案時請**明確指定** \n 或 \r\n。csv、http header、email 必須用 \r\n(RFC 規範)。| 符號 | 意義 |
|---|---|
\\ | 反斜線本身 |
\$ | 美元符號(避免變數解析) |
\" | 雙引號 |
\' | 單引號 |