MySQL Türkçe Karakter Sorunu

PHP & MySQLÇok sorulan sorulardan biridir:
“neden veritabanına türkçe karakter kaydedemiyorum?” veya “veritabanı türkçeyi desteklemiyor mu?” 
PHP ve MySQL kullanırken dikkat etmeniz gereken şeyler:

Sayfalarınızda 8859-9 dil kodlamasını kullanmayı düşünüyorsanız :

Yönetim sayfası ve ekrana bastığınız sayfanın “head” kısmında aşağıdaki kodları kullanın:

veritabanını da “latin5_turkish_ci” yapmalısınız.

Veritabanı bağlantısını da:

Şeklinde yapmalısınız.

Eğer UTF 8 kodlamayı düşünüyorsanız:

Sayfanızın head kısmına

 yukarıdaki kodu ekleyin.

veritabanında da “ut8_general_ci” seçtikten sonra veritabanı bağlantısı için

kodlarını kullanmalısınız.

Benim tavsiyem utf8 kullanın hangi ülkeye site yaparsanız yapın kodları değişmeniz gerekmeyecektir.

Böylece bir yazımızın daha sonuna geldik… kusurumuz olduysa affola…

Yazar: Mustafa Şadoğlu

Mustafa sitemizde 103 yazı eklemiş...

Share
  • Cem Topuz

    Hocam ellerinize sağlık veri tabanına farklı kaydoluyordu. UTF8 açıklamanız sayesinde çözdüm.

  • Sami Çiçekli

    Kaç tane site arasında aradığım çözümü burada buldum. Teşekkürler…

  • olmuyor bende

  • Fatih

    Hocam çok güzel elinize sağlık, ı harfi düşünde her şeyi rahatlıkla gösteriyor.

    Küçük ı harfi için ne yapmamız gerekiyor?

    İyi çalışmalar..

  • @Mustafa Şadoğlu

    hocam sanırım BOM ile alakalı olabilir bu sorun

  • ahmet

    ALTER TABLE anket_soru
    DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

    kodum usta bunu turkce karakter olarak duzeltmem lazım
    head kısmında eklı

  • @mahmut
    o ne demek? “sayfanın kendi türkçe karakterlerinde sorun var ” ?

  • mahmut

    Abi Ben Bu Dediklerinizi az önce yaptım ancak sayfanın kendi türkçe karakterlerinde sorun var ?

  • Pingback: Anonim()

  • Hadi

    Merhaba
    Ben tüm php dosyalarımın header tagında utf8 dilini seçtim
    mysql tablo ve tablo verilerinin dilini utf8_general_ci seçtim
    configirasyon dosyalarımda utf8_general_ci şeklinde.

    Şimdi sorunum şu. php sayfalarımdan Mysql veri tabanına gönderdiğim Türkçe karakterler (örneğin ŞEKER) veritabında (ÅžEKER) bu şekilde görünüyor. php sayfalarında veriyi çağırıp yazdırdığımda ise ŞEKER şeklinde yazıyor ama ORDER BY ile sıralamada ŞEKER kelimesini A… ile B… harfi arasına yer alıyor.

    Joomla yı incelediğimde ise onun da MySQL veritabanında ytf8_general_ci dilini kullandığını gördüm. Ama veritabanında Türkçe karakterler Türkçe şekilleri ile kaydedilmiş. Yani ŞEKER olarak görünüyor. Bu yüzden PHP ORDER BY komutu ile listeleme işlemini de doğru yapıyor.

    Benim sorunum sanırım veritabanına Türkçe karakterleri Türkçe olarak kaydettirememek, bunu nasıl yapabilirim?

    • veritabanına bağlandığınız yerde
      mysql_query(“SET NAMES utf8”);
      mysql_query(“SET CHARACTER SET utf8”);
      mysql_query(“SET COLLATION_CONNECTION=’utf8_general_ci'”);
      kodlarını kullandığınıza eminmisiniz? bence bundan kaynaklanıyordur.