Verilerinizi kaydedip tekrar açtığınızda şirket yazısı Åirket olmuş mu? Ya da İstanbul İstanbul olarak mı dönüyor? Bu, Excel'in bir bug'ı değil; karakter kodlamasının yanlış ayarlanmış olmasıdır. Ne yaptığını bir kez anlayınca sorun hızla çözülür.

Sorunun Kaynağı: Karakter Kodlaması

Bilgisayarlar harfleri bayt dizileri olarak saklar. Aynı baytın hangi harfe karşılık geldiğini belirleyen kural kodlamadır. En yaygın üç kodlama:

  • UTF-8: Modern, evrensel standart. Tüm Türkçe karakterleri destekler.
  • Windows-1252 (CP1252): Eski Windows varsayılanı. Türkçe karakterleri yarı destekler.
  • ISO-8859-9 / CP1254: Tam Türkçe için tasarlanmış eski kodlamalar, artık nadiren kullanılır.

Bir dosya UTF-8 olarak kaydedilip Windows-1252 olarak okunduğunda Türkçe karakterler bozulur. Excel'in CSV açma varsayılanı uzun yıllar boyunca Windows-1252 olduğu için bu problem özellikle CSV dışa aktarımlarında sık yaşanır.

En Sık Bozulan Karakterler

Bozulan Doğrusu Unicode
ÅşU+015F
ðğU+011F
üüU+00FC
ııU+0131
İİU+0130
ççU+00E7
i
Türkçe I sorunu: Python'un str.upper() fonksiyonu varsayılan olarak ı'yı I'ya çevirir — ama Türkçe'de ı'nın büyüğü I değil İ'dir (ve i'nin büyüğü İ'dir). Bu nedenle Türkçe metinleri büyük harfe çeviren yazılımlar özel locale veya özel fonksiyon kullanmak zorundadır.

Excel'de 3 Çözüm Yöntemi

1. Kaydetme Formatını Seçin

Excel'de Farklı Kaydet'i açıp CSV UTF-8 (Virgülle Ayrılmış) formatını seçerseniz dosya BOM'lu UTF-8 olarak kaydedilir. Başka bir sistemde açıldığında Türkçe karakterler korunur.

2. Bul-Değiştir ile Toplu Düzeltme

Dosya zaten bozulduysa Ctrl + H ile Bul ve Değiştir'i açın; yukarıdaki tabloyu kullanarak her bozuk karakteri sırayla değiştirin. Küçük dosyalarda pratik, büyük dosyalarda sıkıcıdır.

3. Power Query'de Kodlama Belirleyin

Veri → Metin/CSV'den yolunu kullanarak dosyayı Power Query üzerinden açın ve Dosya Orijini seçeneğinden 65001: Unicode (UTF-8) ya da 1254: Turkish'u seçin. Bu, dosya okumayı doğru kodlamayla başlatır ve kökten çözer.

Vexra'nın Yaklaşımı

Vexra, tüm Excel ve CSV dosyalarını okurken önce BOM'u kontrol eder; yoksa kodlama algılayıcısı en olası kodlamayı seçer. Başlık isimleri _hdr_norm() fonksiyonundan geçirilerek Türkçe karakterler standart ASCII karşılıklarına çevrilir — böylece Adı Soyadı, ADI SOYADI, Adi_Soyadi aynı alan olarak tanınır.

Büyük/küçük harf dönüşümlerinde Python'un varsayılan str.upper()'ı yerine Türkçe locale farkındalığı olan özel bir implementasyon kullanılır: ı→I, i→İ, I→I, İ→İ. Böylece bordro ya da personel listesinde i/I/ı/İ karışıklıkları kendiliğinden çözülür.

Türkçe karakter sorunlarını Vexra otomatik halleder.

Vexra'yı Ücretsiz İndir →

Önlem Olarak Ne Yapmalısınız?

  • Veri alırken kaynağın kodlamasını sorun (UTF-8 mi, Windows-1254 mü).
  • Ekip içinde standart kodlama olarak UTF-8'i belirleyin ve tüm dışa aktarımları böyle yapın.
  • CSV'yi Excel'de açarken mümkünse Veri → Metin/CSV'den yolunu kullanın; böylece kodlama seçimini kendiniz yaparsınız.
  • Bordro, personel ve fatura gibi kritik verilerde otomatik normalizasyon yapan bir araç tercih edin.

Sonuç

Türkçe karakter sorunu bir bilgisayar sorunu değil, bir protokol uyumsuzluğudur. Kaydeden sistem ile okuyan sistemin aynı kodlamada anlaşması şart. UTF-8'i varsayılan yapmak, ekibinizdeki en basit ve en etkili kuraldır.