O R H A N K A R T O P U

Sitenizi açıyorsunuz, Türkçe yazılar yerine ‘ç’, ‘ı’, ‘ÅŸ’ gibi tuhaf karakter dizileri görüyorsunuz. İçerikte ş, ç, ğ, ı harflerinin olması gereken yerlerde anlamsız işaretler var. Yazı aslında yerinde duruyor, sadece yanlış okunuyor. Bu, karakter kodlamasının bir yerde uyuşmamasından kaynaklanan tipik bir görüntü.

İyi haber şu: bu durum neredeyse hiçbir zaman gerçek veri kaybı değildir. Yazınızın her harfi veritabanında duruyor, sadece yanlış bir alfabeyle okunduğu için ekranda bozuk çıkıyor. Doğru alfabeyi gösterdiğinizde metin olduğu gibi geri gelir.

Neden oluyor

Metin bilgisayarda sayılarla saklanır ve bu sayıların hangi harfe karşılık geldiğini karakter seti belirler. Türkçe harflerin düzgün görünmesi için hem veritabanının hem de WordPress’in aynı karakter setini kullanması gerekir. Günümüzde bu utf8mb4’tür. Uyuşmazlık genelde şu durumlarda çıkar:

  • Veritabanı ya da tablolar bir karakter setiyle kurulmuş, ama wp-config.php’deki DB_CHARSET ayarı başka bir şey söylüyor.
  • Site başka bir sunucuya taşınmış ve veritabanı yedeği yanlış kodlamayla içe aktarılmış. Bu en sık karşılaşılan senaryodur.
  • İçerik bir yerden kopyalanıp yapıştırılırken kodlaması bozulmuş.

Yani harfler kayıp değil. Doğru anahtarla okununca yerine oturuyorlar.

Adım adım çözüm

İşe ayar kontrolüyle başlayın. wp-config.php dosyasını açın ve DB_CHARSET satırına bakın. Şöyle olmalı:

  • define(‘DB_CHARSET’, ‘utf8mb4’);

Eski kurulumlarda burada utf8 yazabilir. Veritabanınız utf8mb4 ise bunu utf8mb4 yapın. DB_COLLATE satırı genelde boş bırakılır, öyle kalabilir.

Asıl mesele çoğu zaman veritabanı tarafındadır. phpMyAdmin’i açıp veritabanınızı ve tablolarınızı inceleyin. Tabloların collation (karşılaştırma) değeri utf8mb4_unicode_ci gibi bir utf8mb4 değeri olmalı. Değilse, ama veriler zaten bozuk görünüyorsa, sadece collation değerini değiştirmek harfleri düzeltmez; çünkü veri yanlış kodlamayla kaydedilmiş olabilir.

Bu yüzden en güvenli yol dikkatli bir yeniden içe aktarmadır:

  1. Önce mevcut veritabanının tam yedeğini alın. Bu adımı atlamayın, bir şey ters giderse dönebileceğiniz tek nokta burası.
  2. Bozulmanın nereden geldiğini düşünün. Taşımadan sonra çıktıysa, elinizde taşımadan önceki doğru görünen bir yedek olabilir. Varsa, o yedeği doğru karakter setiyle, yani utf8mb4 seçerek yeniden içe aktarın. İçe aktarma ekranında kodlama seçeneğini doğru vermek bütün farkı yaratır.
  3. Elinizde temiz bir yedek yoksa, düzeltme daha uğraştırıcıdır ve metin üzerinde dönüşüm gerektirir. Böyle bir durumda deneme yapmadan önce mutlaka yedekten kopyayla çalışın.

Bir de dosya tarafı var. Tema ya da eklenti dosyalarına elle Türkçe metin eklediyseniz ve orada bozulma varsa, o dosyaları UTF-8 kodlamasıyla kaydedin. Kod editörünüzün alt köşesinde genelde dosyanın kodlaması yazar; UTF-8 değilse UTF-8 olarak yeniden kaydedin.

Bozulmanın tam olarak nerede olduğunu anlamak çözümü kolaylaştırır. Yazılar bozuk ama menü ve tema metinleri düzgünse, sorun büyük ihtimalle veritabanındaki içerik verisindedir. Her yer bozuksa dosya ve tarayıcı tarafındaki kodlama bildirimine de bakmak gerekir; tema şablonunun baş kısmında sayfanın UTF-8 olarak tanıtıldığından emin olun. phpMyAdmin’de içe aktarma yaparken kodlama seçeneğini gözden kaçırmak çok yaygın bir hata, o açılır menüyü her seferinde kontrol etmeyi alışkanlık haline getirin.

Tekrar yaşamamak için

Site taşırken en büyük tuzak budur. Veritabanını dışa aktarırken ve yeni sunucuda içe aktarırken her iki tarafta da utf8mb4 kullanın. Yedek dosyalarını açıp düzenlemeniz gerekirse UTF-8 destekleyen bir editör seçin. Yeni kurulumlarda WordPress zaten utf8mb4 ile gelir, bu yüzden sorun daha çok eski siteleri taşırken başınızı ağrıtır.

Karakter bozulması gözü yorsa da harfleriniz kaybolmuş değil, sadece yanlış okunuyor. Doğru kodlamayla içe aktarınca yerlerine otururlar. Taşıma yedeğiniz hangi durumdaysa onu anlatın, uygun yolu birlikte seçelim.

Bu işleri kendiniz yapmak yerine profesyonel destek isterseniz, WordPress bakım ve teknik destek hizmetime göz atabilirsiniz.

Bu konunun tüm rehberi: WordPress Hataları ve Çözümleri

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

WhatsApp