Mengapa baris 4 adalah rekaman 3

RFC 4180 adalah dokumen Informational yang menjelaskan baris baru dalam bidang bertanda kutip. Di sini first dan second adalah dua baris dalam satu sel. Pembungkusan teks akibat lebar layar berbeda dari baris baru sebenarnya dalam input.

id,note
001,"first
second"
002,ok,extra

Input di atas memiliki 4 baris fisik dan 3 rekaman termasuk header. Moyoutil melaporkan 2 kolom yang diperlukan dan 3 kolom aktual pada rekaman terakhir: baris 4, rekaman 3. Baris baru dalam sel tidak menambah rekaman.

Diagram empat baris fisik CSV dan tiga rekaman dengan area berwarna
Diagram buatan sendiri. Angka kiri adalah baris fisik; angka kanan adalah rekaman termasuk header. Dua baris tengah merupakan satu rekaman. Baris terakhir memuat galat jumlah kolom.

RFC 4180, section 2

Periksa jumlah kolom dan nilai aslinya

Ubah baris terakhir menjadi 002,ok hanya jika extra ditambahkan secara tidak sengaja. Jika itu data nyata, simpan nilainya dan tentukan struktur header serta rekaman lain. Dengan asumsi ini, perbaikan menghasilkan 2 baris data dan 2 kolom, mempertahankan baris baru sebenarnya dalam note dan string 001 dalam id.

[
  {"id":"001","note":"first\nsecond"},
  {"id":"002","note":"ok"}
]

Gunakan tombol lokasi galat untuk memeriksa input, lalu konversi lagi. Galat kutip yang belum ditutup dapat menunjuk ke kutip pembuka tempat pembacaan bermasalah. Satu baris baru terakhir berbeda dari rekaman kosong tambahan. Simpan data asli dan periksa pemisahnya.

Pertanyaan yang Sering Diajukan

Haruskah semua baris baru dihapus?

Tidak. Baris baru bisa menjadi bagian nilai sel. Dalam contoh ini, pertahankan baris baru sel dan perbaiki jumlah kolom rekaman terakhir. Program CSV lain dapat memakai lokasi diagnostik atau aturan dialek berbeda.