Perangkat lunak lini bisnis kami memungkinkan pengguna untuk menyimpan data tertentu sebagai CSV . Karena ada banyak format berbeda (semuanya disebut "CSV") yang digunakan di alam, kami ingin memutuskan seperti apa bentuk "format default" itu.
Mengenai pemisah jalur / bidang dan melarikan diri, ada standar yang bisa kita gunakan: RFC 4180 .
Mengenai pengkodean teks, UTF-8 tampaknya telah muncul dalam dekade terakhir sebagai "format file teks default", jadi kami akan menggunakannya.
Satu pertanyaan yang dibiarkan terbuka adalah: Haruskah kita menambahkan BOM di awal atau tidak? Saya telah membaca banyak pendapat dan pro / kontra tentang penggunaan BOM secara umum, tetapi apakah ada rekomendasi "resmi" atau setidaknya semacam konsensus masyarakat tentang penggunaan BOM dalam file CSV?
sumber
Jawaban:
Bukan untuk UTF-8 , tetapi lihat berbagai peringatan di komentar.
Tidak perlu (UTF-8 tidak memiliki urutan byte) tidak seperti UTF-16/32 dan tidak direkomendasikan dalam standar Unicode . Sangat jarang untuk melihat UTF-8 dengan BOM "di alam liar", jadi kecuali Anda memiliki alasan yang sah (mis. Seperti dikomentari, Anda akan bekerja dengan perangkat lunak yang mengharapkan BOM). Saya akan merekomendasikan pendekatan BOM-less .
Wikipedia menyebutkan beberapa perangkat lunak Microsoft terutama yang memaksa dan mengharapkan BOM, tetapi kecuali Anda bekerja dengan mereka, jangan menggunakannya.
sumber
#!
tidak valid. Paling-paling BOM di UTF-8 "diizinkan, ketika tidak ada persyaratan format / aplikasi khusus yang menghalanginya", tidak "diizinkan", dan karenanya tidak boleh digunakan. Standar sebenarnya jelas tentang TIDAK HARUS.Masih belum ada konvensi luas AFAIK, meskipun tentu UTF-8 sekarang diterima secara umum.
BOM adalah artefak yang mengerikan:
Itu tidak terlihat (ruang nol-lebar).
Beberapa perangkat lunak mungkin pecah pada nama kolom pertama yang tidak hanya berisi huruf, tetapi BOM aneh di depan.
Baris tajuk mungkin dapat disalin untuk jalur nilai yang merusak nilai pertama.
Hanya diperlukan oleh beberapa perangkat lunak Windows untuk membedakan antara salah satu pengkodean ANSI yang digunakan oleh mesin Windows lokal, dan UTF-8. Notepad, Excel.
Jadi yang menyedihkan adalah seseorang harus mendukung BOM. Mungkin opsional.
Gunakan skema penamaan untuk file (...- utf8.txt, ...- utf8bom.txt).
Dalam banyak kasus kita dapat menggunakan HTML sebagai alternatif ekspor. Ini memungkinkan pengaturan penyandian dalam file. Fitur tambahan adalah pewarnaan latar / latar depan baris dan sel. Yang mempertinggi kualitas ekspor.
sumber
-utf8-windows.csv
lebih baik. Hampir semua orang tahu apa itu Windows, dalam konteks komputer, tetapi jauh lebih sedikit pengguna yang tahu apa itu Byte Order Mark.tschüß
menjadi sampah padahaltschüß
seharusnya ditulis. Pada StackOverflow, banyak kesalahan TI tentang penyandian. Pengguna akhir juga akan mengalami masalah.