CSV Excel'de neden bozuk açılıyor?
Bir sistemden CSV indiriyorsunuz, Not Defteri'nde açtığınızda Türkçe harfler yerinde. Aynı dosyayı Excel açtığında ç, ı, ÅŸ doluyor. Dosya bozulmadı. Excel onu yanlış alfabeyle okudu.
Sebebi şu: UTF-8 kodlanmış bir metin dosyasının başında BOM denen üç baytlık bir işaret yoksa, Excel dosyayı Windows'un yerel kod sayfasıyla (Türkçe sistemlerde Windows-1254) açmayı deniyor. Aynı baytlar başka harflere karşılık geliyor ve tablo bozuk görünüyor. Çözüm dosyanın içeriğini değiştirmek değil, başına BOM koymak. Bu araç bunu yapıyor.
İkinci dert: ayraç çakışması
CSV'nin adı "virgülle ayrılmış" ama Türkçe Windows'ta Excel'in liste ayracı noktalı virgül. Virgülle yazılmış bir dosya Excel'de tek sütuna düşüyor; noktalı virgüllü bir dosya da başka programlarda aynı şekilde tek sütun oluyor. Araç dosyadaki ayracı sezip söylüyor ve çıktıda hangisini istediğinizi siz seçiyorsunuz.
Sezme işi göründüğünden ince: tırnak içindeki virgül ayraç değil. "Ankara, Çankaya" tek hücredir ve içindeki virgülü sayan bir sezici adres sütunu olan her dosyada yanılır. Ayrıca ölçüt toplam sayı değil tutarlılık: doğru ayraç her satırda aynı sayıda geçer. Fiyat sütununda ondalık virgülü olan bir dosyada virgül daha çok görünebilir ama satırdan satıra değişir.
Üçüncü dert: ondalık virgülü
Türkçede ondalık ayracı virgül: 1.234,56. Bu sayıyı başka bir sisteme (veritabanı, İngilizce Excel, bir API) vereceksen noktaya çevirmek gerekiyor. Araç bunu isteğe bağlı olarak yapıyor ve katı davranıyor: yalnızca hücrenin tamamı Türk biçiminde bir sayıysa dönüştürüyor. 1.5000 gibi bir ürün kodu ya da 12,5 kg gibi bir değer olduğu gibi kalıyor, çünkü yanlış dönüştürme veriyi sessizce bozar.
Düzeltilmeyen tek şey
Sütun sayısı diğerlerinden farklı olan satırlar sayılıyor ve gösteriliyor ama düzeltilmiyor. Hangi hücrenin eksik olduğu, hangisinin yanlış yere kaydığı içeriğe bağlı bir karar; tahmin etmek tabloyu sessizce bozardı. Bu satırlar genellikle tırnaklanmamış bir ayraçtan kaynaklanıyor ve nerede olduklarını bilmek çoğu zaman düzeltmek için yeterli.
Bozuk karakterler zaten kaydedilmişse
Bazı dosyalarda bozulma çoktan gerçekleşmiş ve o hâliyle kaydedilmiş olur, yani dosyanın içinde gerçekten ç yazar. Araç bunu da onarıyor: Türkçe karakter düzeltme aracının motoru burada da çalışıyor ve kaç bozuk dizinin onarıldığını söylüyor. Düzgün bir metne ise hiç dokunmuyor.
Dosya cihazınızdan çıkmıyor: okuma, çözümleme ve kaydetme tarayıcınızda yapılıyor. Müşteri listesi, cari hesap dökümü ve personel tablosu tam da bir siteye yüklenmemesi gereken dosyalar.
Nasıl kullanılır?
- CSV dosyasını bırakın, CSV, TSV veya TXT dosyanızı sürükleyin. Dosya okunur okunmaz kodlaması ve ayracı sezilir; en fazla 5 MB.
- Bulguları okuyun, Kodlama, ayraç, satır ve sütun sayısı üstte yazar. Bozuk Türkçe karakter varsa kaç tanesinin onarıldığı, sütun sayısı tutmayan satır varsa hangileri olduğu söylenir.
- Önizlemede kontrol edin, İlk 20 satır tablo olarak gösterilir. Sütunlar doğru yerlere düştüyse ayraç doğru sezilmiş demektir; düşmediyse çıktı ayracını değiştirip yeniden bakın.
- Çıktıyı ayarlayıp indirin, Excel için noktalı virgül + BOM + Windows satır sonu bırakın. Başka bir sisteme vereceksen virgülü seçin, gerekiyorsa ondalık virgülünü noktaya çevirin.