Mengapa CSV memaparkan aksara pelik dalam Excel
Kekeliruan pengekodan di sebalik huruf beraksen yang rosak, dan tiga cara untuk membaikinya.
Anda membuka CSV dalam Excel dan nama seperti Müller atau José dipaparkan dengan simbol pelik di tempat huruf beraksen. Simbol euro dan apostrofi juga bertukar menjadi kelompok aksara yang pelik. Tiada apa-apa yang salah dengan data anda. Excel membaca fail itu dengan pengekodan aksara yang salah.
Apa yang sebenarnya berlaku
Fail teks hanyalah bait, dan pengekodan ialah peraturan untuk menukar bait kepada huruf. Hampir setiap sistem moden menulis fail CSV dalam UTF-8, yang menyokong setiap bahasa. Excel di Windows, apabila anda mengklik dua kali pada CSV, masih menganggap pengekodan serantau yang lebih lama seperti Windows-1252, kecuali fail itu bermula dengan penanda kecil yang dipanggil tanda tertib bait, atau BOM. Tanpa BOM, setiap aksara di luar bahasa Inggeris biasa dinyahkod dengan peraturan yang salah, dan setiap huruf beraksen keluar sebagai dua atau tiga aksara sampah.
Data itu masih utuh. Buka fail yang sama dalam Google Sheets, Numbers atau penyunting teks dan ia kelihatan baik.
Cara 1: tambah BOM
Jika fail itu UTF-8 yang betul dan hanya Excel yang memaparkannya dengan salah, proses fail itu melalui alat pembaiki pengekodan dengan pilihan BOM dihidupkan. Aksaranya tidak berubah, tetapi penanda itu memberitahu Excel untuk membaca UTF-8, dan selepas itu fail dibuka dengan betul apabila diklik dua kali.
Cara 2: tukar kepada fail Excel sebenar
Fail .xlsx langsung tidak mempunyai kekaburan pengekodan. Penukar CSV ke Excel membaca CSV dengan betul dan menyimpan buku kerja yang dibuka dengan sempurna di mana-mana. Ia juga mengekalkan sifar di hadapan dalam poskod dan nombor telefon, yang dibuang oleh Excel apabila ia membuka CSV secara terus.
Cara 3: import dan bukannya klik dua kali
Dalam Excel, gunakan Data, From Text/CSV, dan tetapkan File Origin kepada 65001: Unicode (UTF-8). Excel kemudiannya membaca fail dengan betul. Cara ini berkesan, tetapi anda perlu mengingatinya setiap kali, sebab itulah dua cara pertama lebih praktikal untuk fail yang anda kongsi.
Apabila fail itu sendiri sudah rosak
Kadangkala aksara yang rosak itu telah disimpan ke dalam fail. Ini berlaku apabila seseorang membuka fail UTF-8 dalam Excel, melihat kekacauan itu, dan menyimpannya semula. Kini aksara sampah itulah datanya. Anda akan melihat masalah itu dalam setiap program, bukan dalam Excel sahaja. Alat pembaiki pengekodan mempunyai mod pembaikan khusus untuk situasi ini: ia membalikkan pengekodan berganda dan memulihkan huruf asal. Mod automatiknya mengesan kes ini dalam kebanyakan fail.
Diagnosis pantas
| Apa yang anda lihat | Kemungkinan punca | Penyelesaian |
|---|---|---|
| Salah hanya dalam Excel, baik di tempat lain | BOM tiada | Tambah BOM, atau tukar kepada .xlsx |
| Salah dalam setiap program | Fail disimpan selepas tersalah baca | Baiki pengekodan berganda |
| Tanda soal atau kotak | Fail disimpan dalam pengekodan Windows lama | Tukar daripada Windows-1252 kepada UTF-8 |
Mencegahnya
- Apabila mengeksport daripada Excel, pilih CSV UTF-8 dan bukannya CSV biasa.
- Apabila mengeksport daripada sistem lain untuk pengguna Excel, sertakan BOM jika pilihan itu ada.
- Jangan sekali-kali menyimpan semula CSV yang kelihatan rosak. Baiki pengekodannya dahulu.