Html, Php ve Mysql’de Türkçe Karekteri Sorunu Çözümü

Herkesinde bildiği gibi html, php ve mysql bağlantılı çalışmalar yaptığımız hemen hemen türkçe karakter sorunuyla birçok kişi karşılaşmıştır. Aslında bunun çözümü gayet basit yapmanız gerekenleri aşağıda yazacağım.

Html sayfasında <head> etiketi arasına sayfanın desteklediği dil kodunu yazmalısınız. Eğer kodu <head> etiketi arasına yazarsanız html sayfanızdaki karakter sorunları çözülmüş olacaktır.

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-9″ />

</head>

Bir de html sorunun bir benzeride php web sayfaları için eklemek gerekecektir. Bunun içinde aynı şekilde <head> etiketi arasına aşağıdaki kodu ekleyip sorunu çözebilirsiniz.

<head>

header(“Content-Type: text/html; charset=ISO-8859-9″);

</head>

Aşağıdaki yazacağım kod ile de veri tabanı bağlantısı yaptığınızda, veri tabanından çektiğimiz bilgileri türkçe karakter sorununa çözüm olacaktır.

$dizin=localhost; // (örn : localhost)
 $kullanici=root; // (örn : root)
 $sifre=sifre; // (örn : sifre)
 $vt=veritabani; // (örn : defter)
$baglanti=mysql_connect ($dizin,$kullanici,$sifre) or die (“Hata”);
 $veritabani=mysql_select_db($vt) or die (“Hata”);
 mysql_query(“SET NAMES ‘latin5′”);
 mysql_query(“SET CHARACTER SET latin5″);
 mysql_query(“SET COLLATION_CONNECTION = ‘latin5_turkish_ci’”);

Bir de son olarak php sayfasından formdan gelen verileri türkçe karakter sorunu yaşamamak için php de bulunan str_replace fonksiyonunu kullanarak halledebilirsiniz. Formdan gelen mesaj değişkeninin içerisinde bulunan türkçe karakterler düzeltilir. Bunun için aşağıdaki kodu kullanabilirsiniz.

$mesaj = $_POST['mesaj'];

$tr = array(‘Ç’, ‘ç’, ‘Ğ’, ‘ğ’, ‘ı’, ‘İ’, ‘Ö’, ‘ö’, ‘Ş’, ‘ş’, ‘Ü’, ‘ü’);

$kod = array(‘& Ccedil;’, ‘& ccedil;’, ‘& #286;’, ‘& #287;’, ‘& #305;’, ‘& #304;’, ‘& Ouml;’, ‘& ouml;’, ‘& #350;’, ‘& #351;’, ‘& Uuml;’, ‘& uuml;’);

$veri = str_replace($tr, $kod, $mesaj);

Diğer Benzer Yazılar:


3 thoughts on “Html, Php ve Mysql’de Türkçe Karekteri Sorunu Çözümü

  1. # Ahmet ARDUÇ

    Öncelikle merhaba,

    Size şöyle bir tavsiyede bulunabilirim, herkesin bu şekil kullanması ve sorunsuz bir şekilde kullanılması açısından. Mümkün olduğunca MYSQL veri tabanında herhangi bir iş yaparken türkçe karakter kullanmamaya bakınız (çok özel durumlar olmadığı sürece). Zaten ingilizce herhangi bir karakter veri tabanına yazıldığında onu sayfanıza çekerken türkçe karakterlerine uygun çekerek onu sayfalarınızda rahatlıkla gösterme şansınız oluyor. Hem herhangi bir png dosyanızı türkçe karakterle çekmeniz ne gibi bir işinize yarayabilir ki? Elinizden geldiğince türkçe karakter kullanmamaya özen göstermenizi tavsiye ederim. Örneğin, yeni_yazi şeklinde alt tire ifadeside kullanarak, boşluk yerine daha kolay kullanımı sağlayacaksınızdır.

  2. Merhaba,

    localde bir proje üzerinde çalışıyorum. Notepad++ kullanıyorum. UTF-8 BOM’suz kodlama sistemini kullanıyorum. Dosyalarımda, klasörlerimde, MySQL’deki tablolarda ve php dosyalarının hiçbirinde Türkçe karakter problemi yaşamıyorum. Fakat enteresan başka bir durum yaşıyorum:
    localhost’ta A isimli bir klasörüm var. İçinde mesela B, C, Ç isimlerinde klasörler var. B, C ve Ç klasörlerinde, isimleri sayılardan oluşan png dosyaları var. Ç klasörünün isminde Türkçe’ye özel ı, ş, ç gibi harfler var diye bu klasördeki resimleri okuyamıyor. Fakat, B ve C klasörlerinin isimlerinde Türkçe’ye özel harfler olmadığından, o klasörlerdeki resimleri okuyabiliyor.
    Sorunu nasıl çözebiliriz?

Bir cevap yazın

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