Neden BOM'lu indiriyoruz? Excel, CSV dosyasını çift tıklamayla açarken sana kodlamayı sormaz — Türkçe Windows'ta dosyayı Windows-1254 varsayar ve UTF-8 metni bozuk gösterir. Dosyanın başına konan üç baytlık görünmez imza (BOM: EF BB BF) Excel'e “bu dosya UTF-8” der ve harfler ilk açılışta doğru gelir. Bu yüzden indirdiğin CSV BOM'ludur. Dosyayı bir veritabanına ya da BOM'u tanımayan eski bir sisteme aktaracaksan .xlsx çıktısını kullan.
Tarayıcının standart toUpperCase() fonksiyonu “istanbul” kelimesini ISTANBUL yapar; noktasız I ile. Türkçe'de doğrusu İSTANBUL'dur. Bu araç dönüşümü Türkçe kurallarıyla yapar — yaz ve farkı gör:
CSV veya Excel dosyanı açtığında ç ı ÅŸ Ü ya da Ýstanbul, þube, ðaziantep gibi bir çorap söküğü görüyorsan dosyan bozulmamış — sadece yanlış kodlamayla okunuyor. Bu ücretsiz araç dosyanın gerçek kodlamasını (UTF-8, Windows-1254, ISO-8859-9) tespit eder, bozuk türkçe karakterleri onarır ve Excel'in çift tıklamayla doğru açacağı BOM'lu UTF-8 CSV ya da .xlsx olarak indirir. Üyelik yok, ücret yok, yükleme yok: her şey tarayıcının içinde çalışır, dosyan cihazından çıkmaz.
Bu, müşteri listesi, cari hesap dökümü, bordro veya TC kimlik numarası içeren tablolar için teknik bir ayrıntı değil, KVKK meselesidir: bu dosyaları tanımadığın bir siteye yüklemek kişisel verinin yurt dışına aktarılması anlamına gelir. Burada sunucuya giden tek bir bayt yok; sayfayı kapattığın anda geriye hiçbir şey kalmaz.
CSV, TXT veya Excel dosyanı sol taraftaki alana bırak — ya da bozuk metni doğrudan yapıştır.
Kodlama otomatik tespit edilir ve ne bulunduğu yazılır. Önce/sonra tablosunda bozuk hücreler kırmızı, onarılanlar yeşil görünür.
İstersen ikinci sekmede telefon, IBAN, plaka ve Türkçe harf temizleyicilerini uygula; sonra BOM'lu CSV ya da XLSX olarak indir.
| Ekranda gördüğün | Gerçekte olan | Sebebi |
|---|---|---|
ç ı ÅŸ ÄŸ ö Ü | ç ı ş ğ ö Ü | UTF-8 dosya, Windows-1254/1252 sanılarak okundu (“çift kodlanmış UTF-8”). En sık görülen hâli. |
Ý þ ð Þ Ð ý | İ ş ğ Ş Ğ ı | Windows-1254 dosya, ISO-8859-1 (Batı Avrupa) sanılarak okundu. Eski muhasebe ve ERP çıktılarında klasiktir. |
? veya ��� | ç ğ ı İ ş | Windows-1254 dosya UTF-8 sanıldı; çözülemeyen baytlar soru işaretine döndü. Kaynak dosya duruyorsa onarılır. |
’ “  | ’ “ (boşluk) | Word'den kopyalanan akıllı tırnaklar ve kırılmaz boşluklar aynı çift kodlama zincirinden geçmiş. |
Araç bu dört durumu da ayrı ayrı tanır ve hangisini bulduğunu ekranda açıkça yazar. Bulacak bir şey yoksa “dosya zaten temiz” der — sessizce bir şeyleri değiştirmez.
İkinci sekme, onarılmış tabloyu sütun sütun düzeltir: telefon numaralarını +90 5XX XXX XX XX biçimine getirir (0532…, 90532…, 0090532… hepsi aynı sonuca gelir), IBAN'lardaki boşlukları temizleyip dörtlü gruplar hâlinde yeniden yazar, plakaları büyük harfe çevirir, baş/son boşlukları kırpar ve çoklu boşlukları tekler. Harf durumu dönüşümleri Türkçe kurallarıyla yapılır: toUpperCase() “istanbul” için ISTANBUL üretirken bu araç İSTANBUL üretir, “IĞDIR” için de ıġdır değil ığdır verir. Sayfadaki canlı örnek kutusunda farkı kendin yazarak görebilirsin.
Çünkü dosyanın içinde "bu metin hangi kodlamayla yazıldı" bilgisi yoktur. Dosya UTF-8 ile kaydedilmiş ama Excel Türkçe Windows'un varsayılanı olan Windows-1254 ile açmışsa ç harfi ç, ı harfi ı, ş harfi ÅŸ olarak görünür. Tersi durumda, yani Windows-1254 dosya UTF-8 sanılırsa Türkçe harfler soru işaretine veya siyah baklava şekline döner. Bu araç dosyanın gerçek kodlamasını tespit edip metni doğru harflere geri çevirir.
Dosya hiçbir yere yüklenmiyor: tüm okuma, tespit ve onarım işlemi tarayıcının içinde, kendi bilgisayarında çalışır. Cari hesap, müşteri listesi, bordro ve TC kimlik içeren dosyalar KVKK kapsamında kişisel veridir; bunları yabancı bir siteye yüklemek veri aktarımı sayılır. Burada sunucuya giden bir bayt yok, sayfayı kapattığında da geriye hiçbir şey kalmaz.
BOM (Byte Order Mark), dosyanın en başına konan üç baytlık görünmez bir imzadır: EF BB BF. Excel bir CSV dosyasını çift tıklamayla açarken kodlamayı sormaz, sistem dilinin varsayılanını kullanır. Dosyanın başında BOM görürse bunu UTF-8 işareti sayar ve Türkçe harfleri doğru gösterir. Bu yüzden indirdiğin CSV BOM'lu UTF-8'dir. Dosyayı bir veritabanına veya BOM'u kaldırmayan eski bir sisteme aktaracaksan XLSX çıktısını tercih et.
İkisi de Türkçe için tek baytlık kodlamadır ve harfler tamamen aynı yerdedir; fark yalnızca 0x80-0x9F aralığındaki tırnak, tire gibi noktalama karakterlerindedir. Tarayıcıların uyduğu Encoding standardı ISO-8859-9 etiketini zaten Windows-1254 ile aynı tabloya eşler, dolayısıyla bu araçta iki seçenek de aynı sonucu verir. Seçeneği dürüstlük olsun diye bırakıyoruz, sihirli bir farkı yok.
Evet. 25 MB'a kadar olan dosyalar tamamen ayrıştırılır, tüm sütun temizleyicileri ve XLSX çıktısı kullanılabilir. Daha büyük dosyalar (yaklaşık 400 MB'a kadar) akış modunda parça parça işlenir: kodlama onarımı dosyanın tamamına uygulanır, önizleme ilk 50 satırla sınırlanır, sütun temizleyicileri ve Excel çıktısı ise kapatılır. Bu sınırı gizlemiyoruz, ekranda yazıyor.