Skip to content
Back to Blog
platform-pain-points

Excel Menampilkan Karakter Rusak di CSV? Perbaikan UTF-8 BOM

2026-05-17 8 min read

Mengapa CSV Kamu Terlihat Baik di Mana Saja Kecuali Excel

Kamu mengekspor CSV dari database atau CRM kamu. Kamu membukanya di editor teks, dan semuanya sempurna. Karakter beraksen, kanji Jepang, tanda euro—semuanya ada dan benar. Lalu kamu klik ganda untuk membukanya di Excel, dan kekacauan pun terjadi. Kamu menatap string yang kacau balau seperti 'é' alih-alih 'é', atau '¥' alih-alih '¥', atau seluruh kolom berisi tanda tanya. File itu sendiri tidak berubah. Masalahnya ada pada Excel. Ketika kamu membuka CSV dengan klik ganda, Microsoft Excel—terutama di Windows—tidak menganggapnya sebagai UTF-8. Ia kembali ke halaman kode lama warisan sistem kamu. Bagi sebagian besar orang di Barat, itu adalah Windows-1252 (juga CP1252). Bagi pengguna di Jepang, itu adalah Shift-JIS. Ketika file UTF-8 dipaksa melalui interpretasi Windows-1252, setiap karakter yang menggunakan lebih dari satu byte akan rusak, menghasilkan omong kosong yang dikenal sebagai mojibake. Ini bukan bug baru. Ini adalah frustrasi lama yang telah melanda Excel 2010, 2013, 2016, 2019, dan masih muncul di Microsoft 365 hingga tahun 2025. Jika kamu hanya klik ganda CSV UTF-8 biasa, kamu sedang mempertaruhkan nasib. Meskipun Microsoft telah menambahkan deteksi UTF-8 yang lebih baik di build M365 terbaru, perilakunya sangat tidak konsisten, tergantung pada lokal kamu, versi Office, dan terkadang, tampaknya, fase bulan. Perbaikan yang dapat diandalkan adalah UTF-8 BOM—sebuah Byte Order Mark. Ini adalah urutan tiga byte khusus yang tidak terlihat (0xEF, 0xBB, 0xBF) di awal file yang berfungsi sebagai sinyal untuk Excel, mengatakan 'Hei! File ini adalah UTF-8, jadi bacalah seperti itu.' Excel menghormati sinyal ini, bahkan di versi lama. Sisa artikel ini menjelaskan cara menambahkannya, kapan *tidak* menambahkannya, dan bagaimana CocoConvert dapat menanganinya untuk kamu.

Apa Sebenarnya BOM Itu (dan Apa yang Bukan)

Byte Order Mark awalnya berasal dari dunia UTF-16 dan UTF-32, di mana urutan byte (big-endian vs. little-endian) adalah masalah nyata. BOM memberi tahu program urutan byte. Tetapi untuk UTF-8, urutan byte bukanlah masalah; selalu sama. Jadi, dari sudut pandang teknis murni, UTF-8 BOM (karakter U+FEFF yang dikodekan sebagai tiga byte: EF BB BF) sama sekali tidak diperlukan. Ini tidak perlu, tetapi ini menjadi kode rahasia yang membuat Excel berperilaku baik. Ketika Excel melihat tiga byte tersebut di awal file, ia langsung beralih ke mode UTF-8. Tanpa itu, ia akan kembali ke pengaturan regionalnya, dan kamu akan mendapatkan mojibake yang familiar itu. Inilah masalahnya: BOM yang memperbaiki Excel dapat merusak banyak perangkat lunak lain. Inilah bagian yang sering membuat banyak pipeline data otomatis terhenti. Fungsi `open()` standar Python, jika kamu lupa menentukan `encoding='utf-8-sig'`, akan membaca BOM sebagai bagian dari bidang data pertama kamu. Pernyataan `LOAD DATA INFILE` MySQL akan mengira BOM adalah bagian dari nama kolom pertama, merusak header kamu. Banyak alat baris perintah Linux klasik seperti `grep`, `awk`, dan `wc` tidak menangani file berawalan BOM dengan baik. Perintah `COPY` PostgreSQL bahkan lebih ketat dan akan gagal tepat pada header kolom pertama. Aturan praktis saya sederhana: hanya tambahkan BOM jika kamu tahu tujuan akhir file adalah pengguna yang mengklik gandanya di Excel. Jika CSV kamu ditujukan untuk impor database, skrip Python, atau pipeline Unix, kamu menginginkan UTF-8 bersih *tanpa* BOM. Kamu masih bisa membukanya dengan benar di Excel, kamu hanya perlu menggunakan Text Import Wizard, yang akan kita bahas.

Tiga Cara Menambahkan UTF-8 BOM Secara Manual

Jika kamu terjebak dengan CSV yang rusak dan perlu memperbaikinya sekarang juga, kamu tidak memerlukan layanan mewah. Berikut adalah tiga cara yang dapat diandalkan untuk menambahkan BOM sendiri. **Menggunakan Notepad++ di Windows:** Ini sering kali merupakan perbaikan tercepat. Buka CSV kamu di Notepad++. Pergi ke menu `Encoding`. Kamu mungkin akan melihatnya sudah diatur ke 'UTF-8'. Itulah masalahnya—itu adalah UTF-8 *tanpa* BOM. Klik opsi 'Encode in UTF-8 BOM' lalu simpan file. Selesai. File sekarang memiliki awalan tiga byte ajaib dan Excel akan membukanya dengan benar. **Dengan satu baris perintah Python:** Jika kamu nyaman di terminal, perintah tunggal ini adalah cara yang ampuh untuk mengonversi file UTF-8 apa pun menjadi UTF-8 dengan BOM. Ini berfungsi di OS apa pun dengan Python 3. ``` python3 -c "open('output.csv','wb').write(b'\xef\xbb\xbf'+open('input.csv','rb').read())" ``` Perintah ini membaca `input.csv` kamu sebagai byte mentah, menempelkan tiga byte BOM di bagian depan, dan menulis semuanya ke `output.csv`. Tidak diperlukan library tambahan. **Dengan Text Import Wizard milik Excel:** Alih-alih mengubah file, kamu cukup memberi tahu Excel cara membacanya dengan benar. Buka `Data → Get & Transform Data → From Text/CSV` (di Excel modern) atau `Data → Get External Data → From Text` (di versi lama). Langkah kuncinya adalah menemukan pengaturan 'File Origin' di dialog impor dan mengubahnya menjadi `65001: Unicode (UTF-8)`. Ini memaksa Excel untuk menggunakan encoding yang benar. Kerugiannya cukup besar: perbaikan ini bersifat sementara dan hanya berlaku untuk sesi impor kamu. Orang berikutnya yang mengklik ganda file akan melihat kekacauan yang sama. Tidak ada metode manual ini yang bagus untuk proses yang dapat diulang. Di sinilah mengotomatiskan konversi, dengan BOM sebagai pilihan, benar-benar mulai masuk akal.

Bagaimana CocoConvert Menangani UTF-8 BOM Selama Konversi File

Ketika kamu menggunakan CocoConvert untuk mengubah file menjadi CSV—baik itu berasal dari Excel, JSON, XML, atau lainnya—kami memberi kamu kontrol langsung atas hal ini. Di pengaturan output, kamu akan menemukan tombol 'Add UTF-8 BOM for Excel compatibility'. Kami membiarkannya mati secara default, karena seperti yang telah kita lihat, BOM dapat menyebabkan masalah sebanyak yang diselesaikannya di lingkungan non-Excel. Tetapi jika kamu membutuhkannya, cukup nyalakan sakelarnya. Untuk alur kerja apa pun yang berakhir dengan seseorang di bagian akuntansi membuka file, prosesnya sederhana. Unggah file sumber kamu, pilih CSV untuk output, aktifkan tombol BOM, dan unduh. CSV yang dihasilkan akan terbuka dengan sempurna di Excel hanya dengan klik ganda, tidak perlu wizard impor manual. Pengaturan ini juga berlaku untuk konversi batch, jadi jika kamu memiliki 50 file ekspor produk dari toko Shopify, kamu dapat memproses semuanya sekaligus dan membuatnya siap untuk Excel. Penting untuk menjelaskan apa yang dilakukan dan tidak dilakukan oleh alat kami. CocoConvert tidak dapat secara ajaib memperbaiki masalah encoding yang sudah ada di file sumber kamu. Jika sistem lama memberi kamu CSV yang sudah rusak karena ekspor Windows-1252 yang buruk, kami akan mencoba yang terbaik untuk transliterasinya, tetapi beberapa data mungkin hilang. Kamu akan menerima peringatan jika itu terjadi. Kami juga tidak menebak apakah kamu memerlukan BOM; itu keputusan kamu, berdasarkan tujuan file. Alat ini menyediakan opsi, tetapi kamu harus mengetahui alur kerja kamu sendiri. Terakhir, jika kamu mengonversi format yang sudah mengetahui encoding-nya, seperti file XLSX, kami membaca informasi tersebut dengan benar. Tombol BOM dalam kasus tersebut murni tentang membuat CSV *output* kompatibel dengan Excel, bukan tentang memperbaiki sumber.

Excel Text Import Wizard: Kapan Menggunakannya Sebagai Gantinya

Terkadang, menambahkan BOM ke CSV kamu adalah langkah yang salah, dan wizard impor Excel sendiri adalah yang benar. Skenario paling umum adalah ketika kamu mendapatkan CSV dari sistem eksternal yang tidak kamu kontrol. Jika sistem tersebut menghasilkan file UTF-8 bersih *tanpa* BOM, kamu seharusnya tidak perlu menjalankannya melalui alat terpisah hanya untuk menambahkan tiga byte. Di Excel 2016 dan versi lama, navigasikan ke `Data → From Text`. Ketika Text Import Wizard diluncurkan, langkah pertama memiliki dropdown 'File origin'. Kamu perlu mengubah ini dari default (biasanya 'Windows (ANSI)') menjadi `65001: Unicode (UTF-8)`. Setelah itu, selesaikan wizard seperti biasa, dan data kamu akan muncul dengan benar. Di Microsoft 365 dan Excel 2019, jalurnya adalah `Data → Get Data → From File → From Text/CSV`. Importer Power Query yang lebih baru ini lebih baik dalam mendeteksi UTF-8 secara otomatis, tetapi tidak sempurna. Jika pratinjau terlihat salah, temukan dropdown 'File Origin' atau 'Encoding' di dialog dan atur secara manual ke UTF-8. Keterbatasan utamanya, seperti yang telah kami sebutkan, adalah perbaikan ini tidak permanen. File itu sendiri tetap tidak berubah. Jika kamu mengirimkannya melalui email ke rekan kerja, mereka akan mengklik gandanya dan melihat teks yang sama-sama rusak. Wizard adalah alat yang hebat jika kamu satu-satunya yang menyentuh file. Jika kamu mendistribusikannya, kamu benar-benar perlu menyematkan BOM di dalam file itu sendiri. Wizard juga merupakan pilihan yang tepat ketika CSV kamu perlu bersih untuk proses lain, seperti impor database, tetapi kamu hanya perlu melihat sekilas di Excel.

Masalah Encoding Karakter di Luar BOM

Memperbaiki masalah UTF-8 BOM memang menyelesaikan masalah karakter Excel yang paling umum, tetapi itu jauh dari satu-satunya sakit kepala encoding yang akan kamu temui dengan CSV. Berikut adalah beberapa penyebab lain yang perlu diwaspadai. **File sumber Windows-1252**: Banyak sistem lama, terutama ERP warisan dan platform e-commerce generasi pertama, masih mengekspor data dalam Windows-1252. Encoding ini menangani karakter Eropa Barat seperti é, ü, dan ñ dengan baik, tetapi benar-benar rusak untuk bahasa apa pun di luar set itu. Jika kamu mencoba menggabungkan data ini dengan sumber UTF-8, kamu memerlukan langkah re-encoding yang sebenarnya, bukan hanya BOM. CocoConvert dapat menanganinya jika kamu menentukan encoding sumber, atau ia akan mencoba mendeteksinya secara otomatis—yang hasil tes kami menunjukkan berfungsi sekitar 94% dari waktu. Kegagalan terjadi pada file yang secara teknis valid dalam beberapa encoding sekaligus. **Kebingungan delimiter**: Siapa pun yang pernah menghabiskan satu jam men-debug masalah "encoding" hanya untuk menemukan bahwa itu adalah titik koma alih-alih koma tahu rasa sakit ini. Jika CSV menggunakan titik koma sebagai delimiter tetapi lokal Excel kamu mengharapkan koma, semua data akan berdesakan di kolom pertama. Ini terlihat seperti kekacauan yang rusak, tetapi itu bukan masalah encoding. Perbaikannya adalah menggunakan wizard impor dan menentukan delimiter yang benar. **'Smart quotes' Excel dan tanda hubung khusus**: Ketika data telah melewati Microsoft Word atau Outlook, sering kali ia mengambil kutipan keriting "smart quotes" dan tanda pisah em dash yang panjang. Ini adalah karakter UTF-8 yang valid dan terlihat baik di sebagian besar aplikasi modern, tetapi akan merusak kueri database dan skrip yang mengharapkan tanda baca ASCII sederhana. CocoConvert menawarkan fitur 'normalize smart quotes' opsional untuk output CSV yang menggantinya dengan versi ASCII biasa. Ini adalah perubahan yang merusak data kamu, jadi kami menjadikannya opt-in. **Byte NULL dalam data**: Beberapa ekspor database dapat menyematkan byte NULL (0x00) ke dalam bidang teks. Ini adalah penghalang mutlak bagi hampir setiap parser CSV di planet ini. Tidak ada sihir encoding yang akan memperbaiki file dengan byte NULL; mereka harus dihilangkan atau diganti sebelum file dapat digunakan.

Daftar Periksa Praktis Sebelum Kamu Mengonversi atau Membuka CSV

Setelah bergulat dengan masalah encoding di ribuan konversi file, kami menemukan daftar periksa ini membantu menangani sebagian besar masalah karakter CSV sebelum dimulai. **Sebelum kamu mengekspor dari sistem sumber:** Cari opsi encoding. Platform modern seperti Salesforce, HubSpot, dan Shopify semuanya memungkinkan kamu memilih UTF-8 untuk ekspor. Gunakan itu. Jika satu-satunya opsi adalah 'default' atau 'system encoding', curigalah. Masukkan file output ke editor teks seperti VS Code atau Notepad++ yang menunjukkan encoding sebelum kamu mengirimkannya ke siapa pun. **Sebelum kamu membuka CSV di Excel:** Tanyakan pada diri sendiri: apakah file ini memiliki BOM? Di VS Code, encoding ada di bilah status. Di Notepad++, periksa menu Encoding. Jika tertulis 'UTF-8' dan kamu perlu menggunakan Excel, pilihan kamu adalah menambahkan BOM sendiri atau menggunakan wizard impor. Jangan pernah hanya klik ganda dan berharap yang terbaik. **Sebelum kamu memasukkan CSV ke skrip atau database:** Waspadai BOM, terutama jika file berasal dari pengguna Windows. Di Python, menggunakan `encoding='utf-8-sig'` adalah cara paling bersih untuk menanganinya secara otomatis. Untuk MySQL, kamu perlu menghilangkan BOM sebelum impor atau menggunakan pernyataan `LOAD DATA` yang menentukan `CHARACTER SET utf8mb4`. Untuk PostgreSQL, cukup hilangkan; perintah `COPY` tidak memaafkan. Saat menggunakan CocoConvert, ingat aturannya: aktifkan tombol UTF-8 BOM hanya jika kamu tahu file tersebut akan langsung digunakan oleh pengguna Excel yang akan mengklik gandanya. Untuk tujuan lain apa pun—database, API, skrip—biarkan mati. Jika kamu menduga file sumber kamu memiliki masalah, luangkan sepuluh detik ekstra untuk menentukan encodingnya secara eksplisit. Itu jauh lebih cepat daripada memperbaiki konversi yang buruk. BOM adalah hal kecil—hanya tiga byte. Tetapi ia berada tepat di garis patahan antara asumsi berbeda tentang bagaimana file teks seharusnya bekerja, menyebabkan frustrasi yang tidak proporsional. Mengetahui kapan menggunakannya, kapan menghindarinya, dan bagaimana mengatasinya adalah kunci untuk menjaga data CSV kamu mengalir dengan bersih antar alat.