İçeriğe Atla
POPÜLER ARAMALAR: reklam, pazarlama, ,
kod, wordpress, eklenti, web, teknoloji,
programlama, tasarım, ajax, linux, Pardus, blog
Feedburner RSS
Şemsiye


05 Haziran 2006

UTF-8′e Geçtim :)

Kategori Genel, Web, Wordpress | Toplam 416 kez okunmuş | 4 Yorum

Sitemi en sonunda windows-1254 dilinden utf-8'e geçirebildim. Bunu yapmak istememin sebebi uluslararasında ve her platformda -tarayıcı, işletim sistemi vs.- sitenin düzgün görünmesini sağlamaktı. Düzgün derken tabi ki Türkçe karakterlerden bahsediyorum. Bu yazımda da amacım size bu geçişin nasıl olduğunu anlatmak. Daha doğrusu Hakan'ın yazısına kendi deneyimimi de ekleyerek aynı işlemi yapmak isteyen arkadaşlara yol göstermek. Aslına bakarsanız utf-8'e geçişte kullandığımız yöntem biraz farklı olsa da (ben bilgisayarda hallettim her şeyi o server'da fark bu) mantık genel olarak aynı ;) Zaten önemli olan veritabanını dönüştürebilmek :)
Bu arada Hakan'a makalesi ve desteği nedeniyle teşekkürü borç biliyorum :)

Güncelleme Adımları

  • Eski veritabanımın yedeğini aldım. Elde ettiğim .sql dosyası içerisindeki tablo ve text alanlarında kullanılan karakter setlerini temizledim. Eğer sitenizde kullanılan mysql serverda collation bulunmuyorsa zaten .sql dosyanız temizdir.
  • Yedeğini aldığım bu veritabanı içerisindeki tüm tabloları kaldırdım ve boş bir veritabanım kaldı sunucum üzerinde.
  • Tamamen boş olan bu veritabanımın karakter kodlamasını utf8_general_ci yaptım. Bilirsiniz ki UTF-8 tüm dillerin karakterlerini destekler. Ama karakter kodlamasına sahip mysql sürümlerinde utf8_turkish_ci v.b. birçok tanımlamalar bulunur. Bu sürümlerdeki genelleme de utf8_general_ci kodlamasıdır.
  • Az önce yedeğini aldığım ve içerisindeki karakter seti tanımlamalarını temizlediğim sql dosyası tekrar veritabanıma yükledim. Bu yükleme işlemini dosyayı yükleyerek değil, sql dosyasını herhangi bir metin editörü ile açarak ve belli aralıkları sırayla seçmek koşulu ile, phpmyadmin üzerindeki sql sorgusu kutusundan yaptım.
  • wp-includes/wp-db.php dosyasını açtım. Ve,
    $this->select($dbname);

    satırının hemen üstüne

    $this->query("SET NAMES 'UTF8'");

    kodunu ekledim ve veritabanının karakter setinin utf-8 olduğunu tanımladım. Böylece ingilizce dışındaki karakterlerde problem yaşanmamış olacaktı, ki buna Türkçe karakterler de dahil. Bu işlemi sadece bilgisayarımda yaptım, siteye gönderirken tekrar bu satırı kaldırdım çünkü sitemde karakter seti yani collation olayı yok.

  • Daha sonra bilgisayarda bir göreyim dedim blogun son halini fakat ne mümkün! Mysql'in, apache'nin ve php'nin son versiyonunu görünce eklentiler şoka uğradılar :) Aslında boş bir ekran geldi karşıma. Sebebini anlamak 3 saatimi aldı sanırım(belki daha fazla) Veritabanının bütün tablolarını inceledikten sonra eklentileri veritabanından iptal edip çalıştırayım dedim :) Ve blog açıldı :) Bu el ile pasifleştirme işlemi de şöyle oluyor. Yedeğinizi aldığınız veritabanını phpmyadmin ile yüklerken .sql dosyanızda
    INSERT INTO `wp_options` VALUES (39, 0, 'active_plugins', 'Y', 1, 'a:9:...

    satırını bulup şu şekilde değiştirin

    INSERT INTO `wp_options` VALUES (39, 0, 'active_plugins', 'Y', 1, 'a:0:{}', 20, 8, '', 1, 'yes');

    Böylece eklentileri iptal etmiş oldunuz ;) Bütün işler bittikten sonra blogu hosta yükledim ve sonra eklentileri aktif hale getirdim.

  • Mevcut temamın dosyalarının karakter kodlamalarını bir bir UTF-8 olarak değiştirdim ve oluşabilecek Türkçe karakter hatalarını düzelttim. Aynı şekilde içerisinde Türkçe karakter içeren eklenti dosyalarının da kodlamalarını UTF-8 yaptım.
    Not:wp-online counter, sayfa_sayac, democracy anket eklentileri de utf'8'e çevrilince hata verdiler(1nci satırda header hatası) :( Sebebini bulamadım ama zamanla düzelticem.
  • Veritabanı işi bitince 2.0.2 dosyalarını silip 2.0.3 dosyalarını yükledim bilgisayardaki servera ve wp-admin/upgrade.php dosyasını çalıştırdım. Veritabanı yükseltildi böylece.
  • Her şey hazır olduğunda sitemdeki veritabanı ve 2.0.2 dosyalarını kaldırdım. Bilgisayarımda hazırladıklarımı yükledim.
  • wp-config.php dosyasının ayarlarını unutmuyoruz tabi ve onları da güncelliyoruz.
  • Yeni veritabanını yine siteye gönderdim. Tabi sitede karakter seti istenmediği için yine karakter setlerini temizledim.
  • Eklentileri aktif hale getirdim ve üzerlerinde oynamalar yaptıktan sonra sonra işlem tamamlandı :)


Benzer Yazılar



Yorumlar

“UTF-8′e Geçtim :)” için 4 Yorum

  • 1 Fatih Hayrioğlu’nun not defteri » WordPress sürümün yükselttim.

    [...] sonra bir önceki sürüm yükseltmede bu sorunla karşılaştığım aklıma geldi ve çözümü yakuter‘in sitesinden yine [...]

  • 2 avşa adası

    slm..sitemin sayfalarını actıgımda karakterler düzgün gözüküyor ama kaynağa baktığımda karakterler bozuk gözüküyor sorun nedir?

  • 3 baris

    benim sitede kaynağı gösterden bakınca türkçe karakterler düzgün görünmüyor. neden olabilir?

  • 4 Meraklı

    UTF-8 ile tüm karakter setleri destekleniyor buraya kadar anladım.
    Fakat geçen karşıma çıkan bi sorun canımı sıktı açıkçası.

    http://www.zirve100.net/info.php de meta tag analizi yapılabiliyor.
    Eburhanın utf8 kodlu sitesini burada analiz ettirdiğimde türkçe karakterlerin abuk subuk çıktığını gördüm.
    Birkaç search engine simulator sitesinde de ( http://www.delorie.com/ ) gibi
    Türkçe karakterlerin gene bozuk çıktığını gördüm.
    Bunun nedeni ne olabilir ?

    Mesela zirve100 de eburhanın meta analizini yapan araç ile cümleler şu şekilde çıkıyor

    google arama sonuçlarını çeken dogooglesearch sınıfı 3 - 1
    web sitenize tek tıkla ileti�im formu ekleyin 10322 - 1

    Çok ilginç.Arama motorları da sayfaları bu şekilde mi geziyor o zaman ?


Yorum Yapın

yakuter.com © 2006-2008 Erhan Yakut. Site tasarım fallendesign.
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.

WordPress Generator Valid XHTML 1.0 Transitional Valid CSS! Clicky Web Analytics

tracker