CSV Dosyasında Garip Karakterler Neden Çıkar, Nasıl Düzeltilir?
“é” ya da “Сума” gibi garip karakterler, CSV’nin bir metin kodlamasıyla kaydedilip başka bir kodlamaymış gibi açıldığı anlamına gelir — harfler hâlâ dosyanın içindedir, yalnızca yanlış çözülürler. Dosyayı doğru kodlamayla açın (CSV görüntüleyici bunu otomatik algılar) ve UTF-8 bir kopyasını kaydedin. Soru işaretleri (“????”) ise farklıdır: genellikle harflerin dosya yazılırken zaten kaybolduğunu gösterir.
Bir dakikada kodlama nedir
CSV dosyası düz metindir ve diskte metin yalnızca bir sayı dizisidir (baytlar). Kodlama (encoding), hangi sayının hangi harf olduğunu söyleyen tablodur. Temel İngilizce harfler ve rakamlar için neredeyse tüm kodlamalar aynı şeyi söyler; banka dökümünüzdeki sayılar düzgün görünürken adların ve açıklamaların anlamsız karakterlere dönüşmesinin nedeni budur.
Muhasebe programlarından ve bankalardan alınan dışa aktarımlarda karşılaşacağınız üç kodlama:
- UTF-8 — modern standart. Her alfabeyi tek bir dosyada saklayabilir. Temel İngilizce dışındaki harflerin her biri iki ya da daha fazla bayt kaplar.
- Windows-1251 — Kiril alfabesi (Ukraynaca, Rusça, Bulgarca, Sırpça) için eski, tek baytlık bir kodlama. Birçok eski muhasebe programı hâlâ bu kodlamayla dışa aktarır.
- Windows-1252 — Batı Avrupa dilleri için eski, tek baytlık kodlama: é, ü, ñ, ø, € gibi.
Dosyanın kendisi genellikle hangi kodlamayı kullandığını söylemez. Onu açan program tahmin etmek zorundadır; yanlış tahmin ederse mojibake ortaya çıkar — bu bozuk metnin teknik adı budur.
Bozuk metni okuyun: her desen ne anlatıyor
Bozukluğun türü, neyin yanlış gittiğine dair bir ipucudur.
| Gördüğünüz | Beklediğiniz | Ne oldu |
|---|---|---|
é, ü, € |
é, ü, € | UTF-8 dosya Windows-1252 olarak açıldı |
Сума (bol bol Ð ve Ñ) |
Сума | UTF-8 Kiril metin Windows-1252 olarak açıldı |
Ñóìà (aksanlı Latin harfleri) |
Сума | Windows-1251 dosya Windows-1252 olarak açıldı |
Cafй |
Café | Windows-1252 dosya Windows-1251 olarak açıldı |
� (içinde ? olan siyah baklava) |
herhangi bir harf | Eski kodlamalı dosya UTF-8 olarak açıldı |
???? |
herhangi bir harf | Harfler dosya kaydedilirken kayboldu |
“Ô + bir karakter ya da “Д/“Ñ” + bir karakter şeklindeki çiftler, UTF-8’in eski bir kodlama olarak okunduğunun parmak izidir: İngilizce dışındaki her harf UTF-8’de iki bayttır ve eski tablo her baytı ayrı bir simge olarak gösterir. Bu iyi haber — hiçbir şey kaybolmamıştır ve dosyayı UTF-8 olarak açmak sorunu çözer.
Düz soru işaretleri ise kötü haberdir. Genellikle bir program metni, o harfler için yeri olmayan bir kodlamada kaydetmeye çalıştığında (örneğin Kiril harflerini Windows-1252’de) ortaya çıkar; program her birini ? ile değiştirir. Orijinal harfler artık dosyada değildir ve hiçbir görüntüleyici onları geri getiremez. Çözüm, dışa aktarma penceresi seçenek sunuyorsa UTF-8’i ya da doğru bölgesel kodlamayı seçerek kaynak sistemden yeniden dışa aktarmaktır.
BOM: Excel UTF-8’i neden yanlış okur
Bir UTF-8 dosyası, bayt sırası işareti (byte order mark, BOM) denen üç görünmez baytla başlayabilir. Bu, “bu dosya UTF-8” diyen bir ipucudur.
Bir CSV’ye çift tıkladığınızda Excel büyük ölçüde bu ipucuna güvenir. BOM varsa UTF-8’i genellikle doğru okur; yoksa çoğu zaman bilgisayarınızın eski kodlamasını varsayar — bankadan gelen kusursuz bir UTF-8 dışa aktarımın “Сума”ya dönüşmesi tam olarak böyle olur. Diğer programlar tersini yapar ve BOM’u ilk sütun başlığının başında  gibi anlamsız karakterler olarak gösterir. Bunu görüyorsanız dosya UTF-8’dir ve BOM metin olarak gösteriliyordur.
1. çözüm: otomatik algılamayla açın
En hızlı çözüm, kodlamayı sizin yerinize bir aracın algılamasıdır. Opener CSV görüntüleyici önce UTF-8’i dener, olmazsa metne göre Windows-1251’e ya da Windows-1252’ye geçer; böylece adlar ve açıklamalar içe aktarma sihirbazı olmadan doğru görünür. Ayırıcıyı da algılar — virgül, noktalı virgül, sekme ya da dikey çizgi.
Dosya tarayıcınızda okunur ve hiçbir yere yüklenmez; bu, maaş bordroları, faturalar ve banka ekstreleri için önemlidir. Dosyayı diğer programlar için düzeltmek isterseniz dışa aktarma düğmesini kullanın: tablonun temiz bir UTF-8 kopyasını alırsınız (geçerli görünümü; her satırı istiyorsanız önce aramayı temizleyin). Sorununuz bozuk harfler değil de her şeyin tek bir sütuna yığılmasıysa CSV neden tek sütunda açılır rehberine bakın.
2. çözüm: Excel’de doğru “File origin” ile içe aktarın
Dosyaya çift tıklamayın. Bunun yerine boş bir çalışma kitabı açın ve Veri sekmesindeki “From Text/CSV” içe aktarma seçeneğini kullanın. Önizleme penceresinde kodlamayı seçtiğiniz bir “File origin” (dosya kaynağı) listesi vardır:
éya daСумаgösteren dosyalar için 65001: Unicode (UTF-8);- eski Kiril dışa aktarımları için 1251 numaralı Kiril (Windows) seçeneği;
- eski Batı Avrupa dışa aktarımları için 1252 numaralı Batı Avrupa (Windows) seçeneği.
Seçenekler arasında geçiş yapıp önizlemeyi izleyin — adlar doğru göründüğü an doğru kodlamayı bulmuşsunuz demektir. Sonra verileri yükleyin. Dosyayı başkasına göndermeniz gerekiyorsa Excel’den düz “CSV” yerine “CSV UTF-8” dosya türüyle kaydedin; düz “CSV” yine eski kodlamayı kullanabilir.
3. çözüm: Google Sheets, LibreOffice ya da bir metin düzenleyici
Google Sheets. Bir CSV’yi Google Sheets’e içe aktarmak (Dosya → İçe aktar) UTF-8 dosyalarla iyi çalışır ve içe aktarma penceresi ayırıcıyı seçmenize izin verir. Eski kodlamalı dosyalar için daha az güvenilir bir yoldur: Windows-1251 ya da Windows-1252 bir dışa aktarım hâlâ bozuk harfler gösteriyorsa onu diğer yöntemlerden biriyle UTF-8’e dönüştürün ve o kopyayı içe aktarın.
LibreOffice Calc. Bir CSV açtığınızda LibreOffice, “Character set” (karakter kümesi) listesi olan bir metin içe aktarma penceresi gösterir. Unicode (UTF-8), Kiril için Windows-1251 ya da Batı Avrupa için Windows-1252 seçeneğini seçin; önizleme hemen güncellenir. Ücretsizdir ve Windows, macOS ve Linux’ta çalışır.
Metin düzenleyici. Windows’taki Not Defteri, macOS’teki TextEdit ya da VS Code gibi bir kod düzenleyici, kaydederken kodlamayı seçmenize izin verir. İşin püf noktası şu: düzenleyicinin dosyayı önce doğru kodlamayla açması gerekir. Metin düzenleyicide doğru görünüyorsa UTF-8 olarak kaydedin. Orada da zaten bozuksa kaydetmek yalnızca bozukluğu korur — önce dosyayı doğru kodlamayla yeniden açın.
Sık sorulan sorular
CSV’mdeki “????” işaretlerini düzeltebilir miyim?
Genellikle hayır. Soru işaretleri, karakterlerin dosya yazılırken değiştirildiği anlamına gelir; yani orijinal harfler dosyada yok. Muhasebe programından ya da bankadan, mümkünse UTF-8’i seçerek yeniden dışa aktarın.
Kaydederken ya da dışa aktarırken hangi kodlamayı kullanmalıyım?
UTF-8. Her alfabeyi saklar ve her modern program onu anlar. İş arkadaşlarınız dosyayı Excel’de çift tıklayarak açıyorsa, dosyanın BOM ile başlaması için Excel’in “CSV UTF-8” seçeneğini kullanın.
Kodlamayı değiştirmek sayılarımı değiştirir mi?
Hayır. Rakamlar, noktalar ve virgüller UTF-8, Windows-1251 ve Windows-1252’de aynıdır; tutarlar ve tarihler etkilenmez. Yalnızca temel İngilizce dışındaki harfler değişir.
Banka dökümünü online düzeltmek güvenli mi?
Yalnızca araç dosyayı yüklemiyorsa. CSV görüntüleyici dosyayı tamamen tarayıcınızda çözer ve dışa aktarır; ekstre cihazınızdan hiç çıkmaz.