CSV dosyasında Türkçe karakterler neden bozulur?
Bir CSV dosyasında başlıklar doğru sütunlara yerleştiği hâlde şehir adları veya kişi adları bozuk görünebilir. Sorun bazen metnin yanlış karakter kodlamasıyla okunmasından kaynaklanır. Böyle bir durumda görünen bozuk harfleri tek tek düzeltmek, asıl problemi çözmeden yeni hatalar oluşturabilir.

Görsel: Virgülle ayrılmış alanlar içeren örnek CSV metni. Kaynak: Example CSV file.png; üretici: Belbury; lisans: CC BY-SA 4.0.
Metin dosyası nasıl okunur?
CSV, satır ve alanlardan oluşan metinsel bir veri aktarım biçimidir. Harfler dosyada belirli bir kodlamaya göre saklanır; dosyayı açan uygulamanın bu veriyi uygun biçimde yorumlaması gerekir. Python’un CSV belgeleri de farklı kodlamaların dosya açılırken açıkça seçilebileceğini gösterir.
Kodlama ile ayraç seçimi ayrı sorunlardır. Noktalı virgül yerine virgül seçildiğinde alanlar yanlış bölünebilir. Kodlama uygun değilse sütun sayısı doğru olsa bile metin bozulabilir. Bu yüzden içe aktarma önizlemesinde hem tablo yapısına hem Türkçe karakterlere bakılmalıdır.
Özgün dosyanın üzerine kaydetmeyin
İlk adım, gelen dosyanın değiştirilmemiş bir kopyasını saklamaktır. Yanlış yorumlanan metni yeniden kaydetmek, sonraki incelemeyi zorlaştırabilir. Kaynak dosyaya dönmek mümkün olduğunda kodlama seçeneklerini daha güvenilir biçimde karşılaştırabilirsiniz.
Dosyayı gönderen sistemin dışa aktarma ayarlarını öğrenmeye çalışın. Kodlamanın adını dosyanın görünüşünden kesin biçimde çıkarmak her zaman mümkün değildir. Özellikle yalnızca temel Latin harflerinden oluşan kısa bir örnek, farklı kodlamalar arasında ayırt edici olmayabilir.
İçe aktarma önizlemesini kullanın
Bir hesap tablosu uygulamasında dosyaya çift tıklamak, uygulamanın varsayılan yorumuyla açılmasına yol açabilir. Microsoft’un metin dosyası aktarım belgesi, doğrudan açma ile dış veri olarak içe aktarmayı ayrı yollar olarak açıklar. İçe aktarma seçeneği, veriyi tabloya yerleştirmeden önce seçenekleri incelemek için daha fazla kontrol sunabilir.
- Kaynak kopyayı seçerek metin veya CSV içe aktarma işlemini başlatın.
- Uygulamanın sunduğu kodlama ya da dosya kökeni alanını inceleyin.
- Kaynağın belirttiği kodlamayı seçin ve önizlemeyi okuyun.
- Ayırıcıyı ayrıca kontrol ederek sütunların doğru oluştuğunu doğrulayın.
- Deneme aktarımını ayrı bir çalışma dosyasında saklayın.
Örnek kontrolde yalnızca ilk satırı okumak yerine ç, ğ, ı, İ, ö, ş ve ü içeren farklı hücrelere bakın. Büyük ve küçük harfler, farklı adlar ve uzun açıklamalar bir arada incelenmelidir. Böylece görünüşte düzelmiş bir başlığın altında kalan başka sorunlar gözden kaçmaz.
Kontrol için küçük bir örnek küme oluşturmak işleri kolaylaştırır. Örneğin kaynakta bilinen bir şehir adı, ürün açıklaması ve büyük harfli bir başlık seçilebilir. Her kodlama denemesinde aynı üç alanı karşılaştırmak, yalnızca genel görünüme göre karar vermeyi önler. Beklenen değerleri ayrı bir notta tutun; yanlış açılan hücreleri bu notun yerine kullanmayın. Veriyi daha sonra başka sisteme aktaracaksanız hedef sistemin kabul ettiği kodlamayı da öğrenin. İlk uygulamada doğru görünen bir dosyanın ikinci uygulamada da aynı ayarla okunabildiğini deneme aktarımıyla kontrol etmek gerekir. Burada amaç farklı sistemler arasında açık bir aktarım kuralı kurmaktır.
Bozukluk kaynaktan gelmiş olabilir
Her bozuk karakter görüntüsü alıcı uygulamanın ayarından kaynaklanmaz. Metin, CSV üretilmeden önce yanlış dönüştürülmüş olabilir. Farklı kodlamalarla denemek anlaşılır bir sonuç vermiyorsa kaynaktan yeniden dışa aktarım istemek gerekebilir. Bu aşamada rastgele bul ve değiştir işlemleri güvenilir bir onarım sayılmaz.
Göndericiye örnek hücreyi, beklenen yazımı ve görünen bozuk biçimi birlikte iletmek sorunu tarif etmeyi kolaylaştırır. Dosyada kişisel veya kurumsal bilgi varsa inceleme örneğini gereksiz alanlardan arındırmak, yalnızca sorunlu metne odaklanmayı sağlar.
Aktarım tamamlanınca yapılacak karşılaştırma
Satır sayısını, sütun başlıklarını ve örnek birkaç kaydı kaynakla karşılaştırın. Düzeltilmiş dosyayı tekrar açarak karakterlerin korunduğunu görün. Ayrıca kodlama seçiminin tarih, ürün kodu ve sayı gibi diğer alanların nasıl yorumlandığını tek başına belirlemediğini unutmayın; veri türleri ayrıca denetlenmelidir.



