Langsung ke konten
Convertube

File CSV: format tanpa tipe data, tanpa encoding, dan tanpa komite

Apa sebenarnya CSV, mengapa file yang sama tampil berbeda di dua spreadsheet, dan apa isi aturan tanda kutipnya. Konversi CSV di browser Anda, tanpa unggah.

Sekilas

Jenis
Dokumen
Ekstensi
.csv
Tipe MIME
text/csv

File .csv adalah file teks. Tidak ada header, tidak ada versi, tidak ada informasi tipe data, dan tidak ada yang biner — buka di Notepad dan Anda melihat setiap byte-nya. Setiap baris adalah satu baris data, dan ada sesuatu yang memisahkan kolom-kolomnya. Itulah seluruh formatnya, dan itulah sebabnya semua program bisa menulisnya dan tidak ada dua program yang sepakat tentang artinya.

Baca selengkapnya

Format ini berjalan dua puluh lima tahun tanpa spesifikasi. RFC 4180 baru muncul pada 2005 dan secara tegas berstatus Informational, bukan standar — dokumen itu menggambarkan apa yang dilakukan kebanyakan implementasi, bukan menyuruh siapa pun melakukan sesuatu. Yang memang diaturnya adalah tanda kutip: kolom yang berisi pemisah, tanda kutip, atau pergantian baris dibungkus tanda kutip ganda, dan tanda kutip di dalam kolom seperti itu ditulis dua kali. Aturan itulah yang membedakan apakah "Widget, large" menjadi satu sel atau dua, dan aturan itulah yang dilewati parser naif.

Pemisahnya belum tentu koma. Spreadsheet yang berjalan dengan lokal yang menulis desimal sebagai 1,5 tidak bisa sekaligus memakai koma untuk memisahkan kolom, sehingga Excel mengekspor titik koma di sana — di mesin yang sama, dari menu yang sama, menghasilkan file yang tidak bisa dibuka di negara tetangga. Ekspor database sering memakai tab. Alat yang membaca CSV dengan baik akan menebak dari beberapa baris pertama, dan begitu pula yang dilakukan situs ini.

Tidak ada pula deklarasi encoding, dan di sinilah data benar-benar hilang. CSV berisi nama-nama Tionghoa yang disimpan oleh satu program lalu dibuka oleh program lain akan kembali sebagai mojibake, karena yang satu mengasumsikan UTF-8 dan yang lain code page sistem. Dan karena setiap kolom berupa teks tanpa tipe, spreadsheet menebak ulang saat impor: angka nol di depan hilang dari nomor komponen, ID panjang berubah menjadi notasi ilmiah, dan apa pun yang tampak seperti tanggal dijadikan tanggal. File-nya baik-baik saja; cara membacanya yang keliru.

Konversi CSV ke format lain

FAQ CSV

Apakah CSV hanya file teks?

Ya, sepenuhnya. Tanpa container, tanpa kompresi, tidak ada yang biner. Editor teks apa pun bisa membukanya, dan yang Anda lihat adalah isinya.

Mengapa CSV saya memakai titik koma?

Karena file itu diekspor dengan lokal yang memakai koma sebagai pemisah desimal, sehingga koma tidak bisa sekaligus memisahkan kolom. File itu tetap CSV, dan pembaca yang layak dipakai akan mendeteksi pemisahnya alih-alih berasumsi.

Mengapa angka nol di depan hilang?

Karena CSV tidak menyimpan tipe data dan spreadsheet-nya menebak. "007" terlihat seperti angka, jadi berubah menjadi 7. Tidak ada yang salah dengan file-nya — proses impor yang memutuskan. Sebagian besar spreadsheet memungkinkan Anda menetapkan kolom sebagai teks saat impor, dan hanya itu perbaikan yang andal.

Mengapa teks Tionghoa saya kacau?

Karena file-nya tidak menyatakan encoding-nya, dan program yang membukanya menebak berbeda dari program yang menulisnya. Menyimpan sebagai UTF-8 dengan byte-order mark membuat Excel membacanya dengan benar, dengan konsekuensi penanda itu tampil sebagai karakter nyasar di beberapa alat lain.

Bisakah saya mengonversi CSV ke PDF di sini?

Bisa. File-nya di-parse sebagai CSV, bukan sekadar dipecah di setiap koma, sehingga kolom bertanda kutip tetap utuh, dan lebar kolom disesuaikan dengan isinya dengan baris header dicetak tebal. Hasilnya untuk dibaca dan dicetak — tidak ada isi PDF yang bisa diurutkan atau dijumlahkan.

Bagaimana dengan konversi ke Excel?

Tidak perlu: setiap aplikasi spreadsheet bisa membuka CSV secara langsung, dan mengonversinya lebih dulu hanya menambah satu langkah tempat tipe data ditebak. Konversi yang tersedia di sini adalah arah sebaliknya — PDF ke Excel, yang membangun ulang tabel dari halaman yang tidak pernah mencatatnya.