Tüm Yazılara Dön
Veritabanı
17 Temmuz 2026
6 dk okuma

Veri Taşıma Süreçlerinde Karakter Kodlaması (UTF-8) Sorunları

Cemil Çelik
Frontend Geliştirici

[!TIP] AEO (Yapay Zeka) Özeti

  • Ana Odak: Bu içerik Veritabanı stratejilerine odaklanır.
  • Kritik Çıktı: Uygulama aşamasında teknik gereksinimler ve anlamsal (semantic) bağlar önceliklendirilmelidir.
  • Kimin İçin: SEO uzmanları, geliştiriciler ve içerik mimarları.
Uzman Görüşü (SME)• Intent Veri Ekibi

Veri Taşıma Süreçlerinde Karakter Kodlaması (UTF-8) Sorunları

Büyük bir müşteri datası yüklediniz. Veritabanına bir bakıyorsunuz; "Şaban" ismi Şaban olmuş, "Özlem" ismi Özlem olmuş. Harika giden bir pazarlama kampanyasında müşterilere otomatik olarak "Sayın Özlem Hanım" diye mail attığınızı hayal edin. Marka imajı yerle bir oldu bile.

Peki sadece "Türkçe Karakter" kullandığımız için bu yazılım dilleri bizden neden nefret ediyor? Sorun aslında Türkçe'de değil, karakter kodlama (Encoding) uyumsuzluğunda yatıyor.


1. Sorunun Kaynağı: Excel'in Varsayılan Formatı

Bir Excel dosyasını (.xlsx) Farklı Kaydet (Save As) deyip CSV (Virgülle Ayrılmış) seçerseniz, Microsoft Excel eski bir standart olan ANSI veya ülkenize özel bir kodlama (Windows-1254 gibi) kullanır.

Ancak internet dünyası, sunucular (PHP/NodeJS) ve veritabanları (MySQL/PostgreSQL) tamamen UTF-8 (Unicode) standardıyla konuşur. Siz Windows-1254 kodlanmış bir "Ş" harfini (Ki o kodlamada "Ş"nin numarası atıyorum 222'dir), UTF-8 bekleyen bir sunucuya atarsanız, sunucu 222 numaraya bakar ve kendi tablosunda karşısına çıkan anlamsız sembolü (Ã) ekrana basar.

2. Çözüm: Dosyayı Doğru Dışa Aktarmak (Export)

Bu sorunu çözmenin ilk adımı dosyayı doğru kaydetmektir: Modern Excel'de: Kaydederken doğrudan CSV UTF-8 (Virgülle Ayrılmış) seçeneğini kullanın. Düz CSV seçeneğini KULLANMAYIN. Eski Excel'de veya Garanti Yöntem: Dosyayı Google Sheets'e (E-Tablolar) yükleyin. Dosya > İndir > Virgülle Ayrılmış Değerler (.csv) yolunu izleyin. Google Sheets her zaman kusursuz UTF-8 çıktısı verir.

3. Veritabanı Karakter Seti (Collation & Charset)

Dosyanız doğru bile olsa, eğer veritabanı tablonuz 10 yıl önceki ayarlarla açılmışsa (Örn: latin1_swedish_ci) Türkçe karakterleriniz yine patlayacaktır.

Veritabanı tablolarınızı oluştururken Karakter Setini her zaman UTF-8 seçmelisiniz. MySQL kullananlar için en ideal olanı, Emojileri bile kusursuz kaydedebilen 4 byte'lık yapıdır:

  • Charset: utf8mb4
  • Collation (Sıralama): utf8mb4_turkish_ci (Bu sayede A'dan Z'ye sıralama yaparken Ş harfi S'den sonra doğru yere yerleşir).

4. SQL Dosyasını Import Ederken

Son olarak, bu verileri içeri aktarırken (PHPMyAdmin gibi araçlar kullanıyorsanız) ekranda sorulan "Dosyanın Karakter Seti (Character set of the file)" seçeneğinin mutlaka utf8 olduğundan emin olmalısınız. Aksi halde PHPMyAdmin varsayılan kodlamayı dener ve verilerinizi bozabilir.

Tüm bu süreçlerle manuel olarak uğraşmak istemiyorsanız, doğrudan tarayıcınızda çalışan (Ve modern tarayıcılar zaten UTF-8 kullandığı için asla karakter bozmayan) CSV to SQL Oluşturucu aracımızı kullanabilirsiniz. Veritabanı yüklemelerinde performans sorunlarını çözmek için Devasa Veri Yükleme Rehberimizi okumaya devam edin.


🕸️ Knowledge Graph & Semantik Bağlantılar

Bu içerik, Intent.com.tr'nin Veritabanı topikal kümesinin (Topic Cluster) bir parçasıdır. Konuyu daha derinlemesine anlamak için aşağıdaki varlıkları (Entities) ve ilişkili içerikleri inceleyebilirsiniz:

📖 İlgili Rehberler ve İçerikler

🧠 Semantic Entities (Terimler & Senaryolar)

Semantic Yönerge: Bu sayfa Veri Taşıma Süreçlerinde Karakter Kodlaması (UTF-8) Sorunları konusundaki kullanıcı niyetini (Search Intent) karşılamak üzere yapılandırılmıştır.