Web uygulamalarında UTF-8 encoding…

Wednesday October 22nd 2008, 11:22 am |   |  Web Teknolojileri | by eser s.

Bilirsiniz web uygulamalarında ve sitelerinde encoding kullanımı bizim dilimiz gibi farklı karakter setlerine sahip diller için mecburi bir durumdur. Ancak web’in büyükleri biraraya gelip standart ve her dili destekleyebilecek bir encoding yani UTF-8′i ürettiler ve bunu da standart hale getirmeye çalışıyorlar uzunca bir süredir.

Web çalışanları da web uygulamalarında son bir kaç senedir UTF-8′i kullanır hale geldiler. Aslında UTF-8′e geçmek istemesek bile özellikle AJAX kullanımı ile artık iyice mecbur kaldık sanırım :) Mecbur kaldık diyorum çünkü ben de bu geçişi erteleyenlerden biriydim malesef. Zira PHP yazmak için kullandığım Zend, UTF-8 konusunda bana sorun çıkarıyordu. Ancak artık mecburiyetten olsa gerek, Zend’in encoding ayarlarını değiştirip default olarak UTF-8′e çevirdim ve yeni yazdığım tüm projelerde UTF-8 encoding kullanır hale geldim.

Eski projelerimde şimdilik encoding ayarları değişmedi. Çünkü bu projeler oldukça geniş bir veritabanı içeriğine sahip ve bunların UTF-8′e dönüştürülmesi ciddi bir dikkat ve zaman gerektiriyor. O nedenle şimdilik eski projelerime dokunmuyorum.

Yeni projelerde neler yaptım ve nasıl geçtim?

** Öncelikle web sayfalarında yer alan META charset ayarlarını değiştirdim. Eskiden Türkçe karakterler için iki meta charset satırı kullanırken artık tek bir satır kullanmaya başladım. Yani örnekle:

  1.  
  2.         //önceki kullanım şekli  
  3.         <meta http-equiv="Content-Type" content="text/html; charset=win-1254" />
  4.         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
  5.  
  6.         //yeni kullanım şekli  
  7.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8.  

Gördüğünüz gibi artık tek satır oldukça yeterli.

** İkinci olarak dosyalarımız üzerinde çalışırken dosya encoding formatlarını destekleyen bir editör kullanıyoruz. Ben kendim Zend kullanıyorum ve Zend’de Save As dediğinizde gelen dialog penceresinde en altta Encoding kısmı bulunuyor. Buradan UTF-8 seçilmeli.

** Eğer veritabanı kullanmıyorsanız yukarıdaki iki madde UTF-8′e geçmeniz için yeterli. Ancak veritabanı kullanıyorsanız yapmanız gereken bir kaç ayar daha var. Bunlardan ilki veritabanınızı oluştururken Collation için projenize ve içeriğinize bağlı olarak utf8 değerlerinden birini seçmeniz gerekiyor.

** Bundan sonraki aşamada ise veritabanında oluşturacağınız tablonun Collation değerini de veritabanınız için seçtiğiniz encoding değeri ile aynı olacak şekilde ayarlamanız gerekiyor.

** Ek olarak, tablodaki alanlarınızda da Collation değerini tablo ve veritabanınızın Collation değeri ile aynı olacak şekilde ayarlamanız gerekiyor.

** Ve son olarak, php uygulamanızda veritabanına bağlantı kurduğunuz yerde aşağıdaki sql cümlesini çalıştırmanız gerekiyor:

  1.  
  2.         mysql_query("set names ‘utf8′");
  3.  

Ve bu son adımla projenizde UTF-8 kullanımı ile ilgili ayarları tamamlamış oluyorsunuz.
Hayırlı uğurlu olsun:)

Soru veya sorunlarınız için veyahut eksik kaldığını düşündüğünüz şeyler için yorumlar kısmını kullanabilirsiniz…


Comments
1 Comment   |    |  Comments RSS on this post.  |  
  • açıklayıcı bir yazı olmuş. teşekkürler.

    .... Comment by güven • January 25, 2010 @ 19:50 pm
  • Sorry, the comment form is closed at this time.

     
    SHATO Web Hosting Services