Php ve Mysql Türçe karakter sorunu çözüm adımları
Php ve Mysql ile bir web sitesi yazarken türkçe karakter sorunları yaşamamız muhtemeldir, bu yazımızda bunun çözümüne değineceğiz.

Merhabalar , PHP ve MySql ile web sitesi yazarken bazı zamanlar dil sorunu ile karşılaşırız. Localhostda sorun yaşamamamıza rağmen sistemimizi hostinge yüklediğimiz zamanlarda da bu gibi problemlerle karşı karşıya kalmaktayız , bunun çeşitlli sebepleri var bu yazımızda hepsine değinmeye çalışacağız.
-
Html meta etiketleri
Html5 ile çok basit bir kullanımı olan bu meta etiketini head tagları arasına eklerseniz sorunu çözüm yolunda ilk adımı atmış oldunuz hatta çözmüş bile olabilirsiniz.
<meta charset="UTF-8">
Html meta etiketini ekledikten sonra yapmanız gerek bir başka adım ise php sayfamızın en üst kısmına header fonksiyonu ile gerekli utf-8 kodlamalarını tanıtmak aşağıdaki kod işinizi görecektir
header('Content-type: text/html; charset=utf-8');
Bu işlemi de halletikten sonra yapmanız gereken işlem oluşturmuş olduğunuz mysql veritabanını kontrol etmek veri tabanını ayarlar kısmından karşılaştırmaları utf8_turkish_ci seçin ve bu işlemi tüm sütun ve tablolara uygula deyin bu sayede veri tabanı tabloları ile işimiz bitmiş olacak daha sonra php bağlantı sayfanıza gelin ve şu aşağıdaki sql sorgusunu oluşturun.
- PHP Mysql sorguları
//PDO İÇİN
$baglantiniz ->query("SET NAMES UTF8");
//MYSQL_lİ İÇİN
mysql_query("SET NAMES UTF8");
- MYSQL'İ UTF-8 AYARLAMA MY.CNF DOSYASI
Mysqli utf-8 ayarlamak için kurulduğu dosya dizinine gidin my.cnf dosyasını bulup içerisine aşağıdaki kodları eklemeniz gerekiyor , bu kodları ekledikten sonra localhosttaki mysql'iniz utf-8 e ayarlanmış olacaktır.
collation_server = utf8_unicode_ci
character_set_server = utf8
- MYSQL TABLO VE VERİTABANI UTF-8 OLARAK OLUŞTURMA KODLARI
Veri tabanını ve tabloları oluştururken utf-8 kodlamaya uygun hala getirmek için bazı düzenlemeler yapmamız gerekiyor.
CREATE DATABASE `veritabani_adi` DEFAULT CHARACTER SET 'utf8';
CREATE TABLE `tablo_adi` (
-- ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- FORM UTF-8 OLARAK AYARLANMASI
Son olarak da eğer bir post veya get işlemi yaparken form kullanıyorsak formdan giden verilerde de bir bozukluk olabilir bu nedenle post ettiğimiz form etiketinin utf-8 olarak ayarlanması işimizi görebilir ve sorunun kaynağı olabilir. Aşağıdaki taslak şeklinde formumuzu oluşturursak veri Türkçe'ye uygun olarak gidecektir.
<form accept-charset="UTF-8">