7/24 Türkçe destek:[email protected]Sistem durumuDestek talebi

Veritabanında Türkçe Karakter Sorunu (utf8mb4)

Okuma süresi: 2 dk

Kısa yanıt: Türkçe karakterlerin bozulması genellikle veritabanının veya bağlantının farklı karakter setiyle çalışmasından kaynaklanır. Tabloların utf8mb4 karakter seti ve utf8mb4_unicode_ci (veya utf8mb4_turkish_ci) karşılaştırmasıyla oluşturulduğunu, uygulamanın bağlantı karakter setinin de utf8mb4 olduğunu kontrol edin. WordPress’te wp-config.php’de define( 'DB_CHARSET', 'utf8mb4' ); bulunmalıdır.

Bu rehber kimin için: Karakter bozulması yaşayan site sahipleri · Gereken süre: 20 dakika · Seviye: İleri

Karakter bozulmasının iki yaygın biçimi vardır: “ü” gibi çift baytlı görünümler, metnin UTF-8 olarak kaydedilip Latin-1 olarak okunduğunu; “?” işaretleri ise karakterlerin kaydedilirken kaybolduğunu gösterir. İlk durum çoğunlukla düzeltilebilir, ikincisinde veri yedekten geri yüklenmelidir.

Kontrol ve düzeltme

  1. Yedek alın: Her işlemden önce veritabanı yedeği alın.
  2. Mevcut durumu görün: phpMyAdmin’de veritabanının “İşlemler” sekmesinde karşılaştırma değerini, tablo listesinde her tablonun karşılaştırmasını kontrol edin.
  3. Bağlantı ayarı: wp-config.php’de DB_CHARSET değerinin utf8mb4, DB_COLLATE değerinin boş olduğunu doğrulayın.
  4. Tabloları dönüştürün: ALTER TABLE tablo_adi CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; komutunu her tablo için çalıştırın.
  5. İçe aktarmada: phpMyAdmin’de içe aktarma sırasında “Dosyanın karakter seti” olarak utf-8 seçin; komut satırında --default-character-set=utf8mb4 kullanın.
  6. Test edin: Yeni bir içerik ekleyip Türkçe karakterlerin doğru kaydedildiğini kontrol edin.

utf8mb4_turkish_ci mi unicode_ci mi?

utf8mb4_turkish_ci, Türkçedeki ı/İ ve i/I ayrımını doğru sıralar ve arar. Yalnızca Türkçe içerik barındıran uygulamalarda tercih edilebilir; çok dilli sitelerde ise utf8mb4_unicode_ci daha tutarlı sonuç verir. WordPress varsayılan olarak unicode karşılaştırmasını kullanır.

Hâlâ çözülmediyse

Veritabanı doğru olduğu hâlde sorun sürüyorsa tema dosyalarınızın UTF-8 (BOM’suz) kaydedildiğini ve sayfanın meta charset etiketinin utf-8 olduğunu kontrol edin; sayfa başlıklarını HTTP header kontrol ile görebilirsiniz. Taşıma sırasında oluşan sorunları önlemek için ücretsiz site taşıma hizmetimizden yararlanabilirsiniz.

Sık sorulan sorular

utf8 ile utf8mb4 farkı nedir?

MySQL’deki eski utf8 en fazla 3 bayt destekler ve emoji gibi karakterleri kaydedemez; utf8mb4 tam UTF-8’dir.

Tüm tabloları tek komutla dönüştürebilir miyim?

WP-CLI veya küçük bir betik kullanılabilir; ancak her tabloyu tek tek dönüştürmek hataları izlemeyi kolaylaştırır.

İlgili rehberler