PHP, MySQL Türkçe karakter sorunu çözümü

makale.baslik

Bir web sitesine başlamadan önce bazı temel ayarlamaları yapmak gerekir. Bunlardan biride sayfadaki yazılarımızın doğru görünmesini sağlayacak font ve buna uygun karakter setini belirlemektir. Bu yazımdaki yapılacaklara dikkat ederseniz Türkçe karakter sorunu yaşamazsınız.

 

PHP sayfasında yapılacaklar

Bunun için PHP sayfanızı oluştururken ilk başta dosyanızın kodlamasını UTF-8 olarak ayarlamalısınız. Birçok editör bunu otomatik gerçekleştiriyor.

En basitinden Not Defteri kullanarak bunu gerçekleştirebilirsiniz.

not defteri utf-8 kodlama

 

Notepad++ da Kodlama menüsünden seçimi yapabilirsiniz.

Notepad utf-8 kodlama

 

Bunun dışında web sayfanızda HTML5 tercih edip cahrset ini UTF-8 ayarlamanızı tavsiye ederim. HTML5 için şu kalıbı kullanabilirsiniz.

<!doctype html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

</body>
</html>

 

Veri tabanı oluştururken yapılacaklar;

Veri tabanı oluştururken Karşılaştırma (Collation) için Evrensel Kod olan utf8_general_ci veya utf8_turkish_ci seçmelisiniz.

 

Veri tabanına bağlanırken kodlarda yapılacaklar

Veri tabanına bağlanırken charset’i utf8 yapmanız gerekiyor.

 

Eğer mysqli ile bağlanıyorsanız:

$mysqli = new mysqli("localhost", "user", "password", "test");
$mysqli->set_charset("utf8");

 

Eğer PDO ile bağlanıyorsanız:

$pdo = new PDO("mysql:host=localhost;dbname=test;charset=utf8", "user", " password ");

Ya da

$pdo->query("SET CHARACTER SET utf8");

 

Bunlara dikkat ederseniz sayfalarınızda Türkçe karakter sorunu yaşamazsınız. 

Paylaş:

Yorumlar

  1. Hocam çok yararlı bir paylaşım olmuş. Teşekkürler.

  2. Hocam selamlar. 2 gündür bu sıkıntıyı yaşıyorum. Bi yığın siteye baktım biri de dememişki pdo olursa şunu kullanın. Çok teşekkür ederim bilgi için emeğinize sağlık.

  3. Mesut abi valla dediklerin bende var ama nedense öçü harfleri sorunlu mysql utf8 turkish ci charste utf8 ckeditor 4 var pdo php kullanıyorum

    1. Kullandığın fonttun desteği olduğundan emin misin?