Excel'de CSV Açınca Türkçe Karakterler Neden Bozuluyor?
Bir sistemden CSV olarak dışa aktardınız, Excel'de açtınız ve "Şişli" yerine "ÅžiÅŸli" gördünüz. Veriniz bozulmadı — yalnızca yanlış okunuyor.
Sorunun kaynağı
Bilgisayarlar harfleri sayı olarak saklar. Hangi sayının hangi harfe karşılık geldiğini belirleyen kurala kodlama denir. Bugünkü standart UTF-8'dir ve Türkçe harfleri sorunsuz taşır.
Sorun şu: UTF-8'de "ş" harfi iki bayt ile saklanır. Excel dosyayı eski Windows kodlamasıyla (Windows-1254) açtığında bu iki baytı iki ayrı harf sanır ve ekrana iki tuhaf karakter basar. Bu duruma teknik olarak mojibake denir.
Excel'in suçu, dosyanın hangi kodlamada olduğunu tahmin etmeye çalışması ve Türkçe Windows'ta yanlış tahmin etmesidir.
Çözüm 1: Dosyayı içe aktararak açın (en sağlam yol)
CSV'ye çift tıklamak yerine:
- Excel'i boş bir çalışma kitabıyla açın.
- Veri sekmesi → Metinden/CSV'den seçeneğine tıklayın.
- Dosyanızı seçin.
- Açılan pencerede Dosya Kaynağı alanından 65001: Unicode (UTF-8) seçin.
- Ayırıcının doğru olduğundan emin olun (Türkçe dosyalarda genellikle noktalı virgül).
- Yükle deyin.
Bu yöntem her zaman çalışır çünkü tahmine yer bırakmaz.
Çözüm 2: Dosyaya BOM ekleyin
BOM (Byte Order Mark), dosyanın başına konan görünmez bir işarettir ve programlara "bu dosya UTF-8'dir" der. BOM'lu bir CSV'ye çift tıkladığınızda Excel doğru açar.
Sitemizdeki JSON ⇄ CSV ve CSV ⇄ Excel araçları ürettikleri CSV dosyalarına otomatik olarak BOM ekler; bu yüzden bizden indirdiğiniz CSV'ler Excel'de doğrudan doğru açılır.
Çözüm 3: Zaten bozulmuş metni onarın
Elinizde bozuk hâlde kaydedilmiş bir metin varsa geri döndürmek mümkündür. Bozuk Türkçe Karakter Düzeltici aracına metni yapıştırın; araç bilinen tüm bozulma kalıplarını (ç→ç, ÅŸ→ş, ÄŸ→ğ…) tersine çevirir. Akıllı tırnak ve uzun tire gibi tipografik işaretlerin bozuk hâllerini de onarır.
Ayırıcı sorunu: virgül mü, noktalı virgül mü?
Türkçe karakterleri düzelttiğinizde bile tüm veri tek sütuna sıkışmış olabilir. Bunun nedeni ayırıcıdır.
Türkçe'de ondalık ayırıcı virgüldür (3,14). Bu yüzden Türkçe Windows'ta Excel, CSV ayırıcısı olarak noktalı virgül bekler. Uluslararası araçlar ise virgül kullanır. İkisi uyuşmazsa Excel satırı bölemez.
Çözüm: dosyayı içe aktarırken ayırıcıyı elle seçin ya da CSV'yi üretirken doğru ayırıcıyı belirtin. Araçlarımızda ayırıcıyı doğrudan seçebilirsiniz.
Kalıcı çözüm: XLSX kullanın
Veriyi Excel'de kullanacaksanız CSV yerine doğrudan .xlsx biçimini tercih edin. XLSX kodlamayı dosyanın içinde tanımlar; tahmin gerektirmez ve bu sorun hiç yaşanmaz. CSV ⇄ Excel aracıyla dönüşümü yapabilirsiniz.
Özet
Sorun verinizde değil, okuma biçiminde. Dosyayı "Metinden/CSV'den" ile içe aktarıp UTF-8 seçmek en güvenli yoldur; kalıcı çözüm ise veriyi XLSX olarak paylaşmaktır.