Php Mysql Türkçe Karakter Sorunu

Merhaba,

Bu yazımda size Uzmanlık alanı olduğum web tasarımı ve veritabanı hakkında sıklıkla (özellikle webe yeni başlayanların) karşılaştığı sorunlardan bir tanesi olan sayfada Türkçe Karakterlerin doğru gözükmemesinden bahsedeceğim. Türkçe Karakterler : Ç , Ğ , İ , Ö , Ş , Ü, ç , ğ , i , ö , ş , ü. Bunlar sitede tuhaf ve saçma sapan karakterlerle gösterildiği zaman okunması imkansız hale gelir yazdığımız yazıların.

Php de çözümü şöyledir :

1-) Öncelikle siteniz veritabanı kullanacaksa – MYSQL – veritabanını  UTF – 8 formatında yapıyoruz :utf8navicat

veritabanında başka hiçbir yerde dil kodlamasını zorunda kalmadıkça değiştirmeyin (utf-8 haricinde yapmayın).

2-) Php kodlarımızı yazdığımız editörde (örnek : nusphere tavsiyemdir) bütün üzerinde yazı yazdığınız – js, html, php, css, txt, vb gibi…- dosyalarınızı utf-8 olarak kaydediyorsunuz:

utf8nusphere

 

3-) Web sayfanızın dil kodlamasını UTF-8 yapıyorsunuz :

<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

Yukarıdaki yazıyı aynen html taglarının olduğu dosyaya <head> tagından sonra yazın

4-) Mysql connection bağlantınızı yaptıktan hemen sonra aşağıdaki kodu yazın. Bu kod utf-8 formatında kaydedilmiş veritabanındaki verilerinizin php tarafından utf-8 olarak yorumlanmasını sağlar. Yani bizim istediğimizde budur.

mysql_query(“SET NAMES utf8”);
mysql_query(“SET CHARACTER SET utf8”);
mysql_query(“SET COLLATION_CONNECTION = ‘utf8_general_ci'”);

5-) Php dosyalarınızın en başına aşağıdaki kodu ekleyin

header('Content-Type: text/html; charset=utf-8');

burada dikkat etmeniz gereken şey şu. bu kod html çıktıyı üreten php kodunuzda olacak. Açıklaması: index.php dosyanıza include ettiğiniz  bir dosyanız var bunun adı da menu.php. sizin bu kodu yapıştıracağınız yer index.php dosyanızın üstleri. bütün includelardan önce yapıştırın. menu.php  ye gerek yok. ama yapıştırırsanız zararıda olmaz.

6-) Ajaxda Türkçe karakterlerde sorun çıkıyorsa

ajaxa gönderilen parametreyi java kısmında encodeURI() fonksiyonuyla sıkıştırın.

Örnek : ajaxparamtere = encodeURI(str);

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Solve : *
17 × 6 =