所有指南
資料

包含逗號、引號和換行的 CSV 儲存格

兩筆記錄,超過兩行。將逗號和換行保留在儲存格內。

CSV 儲存格可以包含逗號、引號或換行符號。這並不表示檔案損壞,而是該儲存格需要加引號,且計算文字行數不一定能告訴你它包含多少筆記錄。

下載 範例 CSV。打開 CSV、JSON 與 YAML 轉換器 並上傳它。該檔案有兩筆記錄,儘管其中一個說明跨了兩行:

name,caption
"Lee, Sam","First line
Second line"
Mina,"She said ""hello""."

在分割列之前先讀取引號

"Lee, Sam" 中的逗號屬於姓名。First line 與 Second line 之間的換行屬於說明。因為它們在雙引號內,所以都不是新欄位或新記錄的開始。

在加引號的儲存格內,連續兩個雙引號代表一個引號。因此 "She said ""hello""." 會變成文字 She said "hello".。外層引號與內部成對的雙引號是 CSV 語法,不是要保留在值裡的額外字元。這些規則詳見 RFC 4180 的 CSV 格式說明。

直接在每個逗號或換行符號分割原始文字會忽略這些差異。移除所有引號也不是修復方法,因為會把姓名內的逗號當成欄位分隔符。

轉換範例並檢查其值

  1. 上傳範例檔,或將上方 CSV 貼到輸入編輯器。
  2. 設定 從 為 CSV,到 為 JSON。
  3. 在 選項 中,保持 第一列包含標題 開啟,偵測 CSV 中的數字和布林值 關閉。若自動偵測錯誤,將 CSV 分隔符號 設為 逗號。
  4. 檢查 程式碼 結果。應包含兩個物件,每個都有姓名和說明。表格 可快速檢視兩列兩欄。

下載的範例使用 CRLF 換行符號,包括第一個說明內的換行。其 JSON 輸出包含:

[
  {
    "name": "Lee, Sam",
    "caption": "First line\r\nSecond line"
  },
  {
    "name": "Mina",
    "caption": "She said \"hello\"."
  }
]

JSON 會將回車與換行顯示為跳脫序列,但它們仍代表字串中的換行。如果你從本頁貼上範例而非上傳檔案,剪貼簿可能只提供 LF 換行;看到 \n 而非 \r\n 是正常的。下載 檢查過的 JSON 輸出 以取得 CRLF 版本。

測試來回轉換

選擇 將結果作為輸入,將 JSON 轉回 CSV。保持所有欄位選取。匯出的 CSV 會再次為逗號、多行說明與引號加引號。轉回 JSON 後,我們檢查兩筆記錄與所有欄位值都被保留。

這是資料比較,不保證每個 CSV 檔案都能逐位元組完全還原。引號、結尾換行與分隔符可能寫法不同。工具預設也會保護類似試算表公式的值,可能會故意加上前導單引號。我們的範例沒有這類值;開啟不信任的試算表匯出時,請保持此保護開啟。

逗號確實是錯誤時

錯誤範例 在姓名中未加引號的逗號,導致標題兩欄但資料列有三欄,轉換器因此拒絕。將整個姓名用 "Lee, Sam" 加引號即可修正,請勿刪除姓名部分。

結果記錄 包含 2026 年 10 月 26 日的預期值、來回轉換檢查與拒絕輸入結果。它測試的是轉換器的解析器,不是每個試算表應用程式的 CSV 匯入規則。