Merhabalar,
1) Tarayıcı taraflı utf8 problemi olduğu zaman, tarayıcıya charset belirtmek adına; <?php @header('Content-Type: text/html; charset=utf-8');başında @ olmasının sebebi notepad++ açıldığında bazen kodlamadan ötürü boşluk oluşuyor ve header already sent hatası veriyor.
2) Bir başka problem ise notepad++ kullananlarda yaşanıyor, bu ayar ile dosyalarını kaydetmesini öneririm. 3.1) MySQL Veritabanı kurulumunda, tabloları oluşturmadan önce ayarlarınızın bu şekilde olduğuna emin olun. 3.2) Veritabanında ilk adımı uyguladıktan sonra, ikinci adım olarak tablo oluştururken veya oluşturduktan sonra ayarlarında utf8_turkish_ci seçili olduğuna emin olun 3.3) PHP kodlarınızda MySQL bağlantı kurulumu sonrası aşağıdaki adımların uygulandığına emin olun. mysql fonksiyonları ile bağlantı $settings = Array(
'server' => 'localhost',
'database_name' => 'database_adi',
'username' => 'kullanici_adi',
'password' => 'sifre'
);
function connection() {
global $settings;
$link = mysql_connect($settings['server'], $settings['username'], $settings['password']);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
if (!mysql_select_db($settings['database_name'])) {
die('Could not select database: ' . mysql_error());
} else {
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci'");
}
}
connection();mysqli fonksiyonları ile bağlantı (php 7 üzeri sürümlerde gerekiyor)
$settings = Array(
'server' => 'localhost',
'database_name' => 'database_adi',
'username' => 'kullanici_adi',
'password' => 'sifre'
);
function connection() {
global $settings;
$link = mysqli_connect($settings['server'], $settings['username'], $settings['password'], $settings['database_name']);
if (!$link) {
die('Could not connect');
} else {
mysqli_query($link, "SET NAMES 'utf8'");
mysqli_query($link, "SET CHARACTER SET 'utf8'");
mysqli_query($link, "SET COLLATION_CONNECTION = 'utf8_turkish_ci'");
}
}
connection();