Php'de MySQL Türkçe karakter sorunu ve çözümü
Merhabalar,
Işin programlama dili ayrı olduğunu söylemiştim. PHP'de farklı işlemler yapılıyor. Kesin çözümler uygulanıyor (ne kadar olduğu tartışılır ya). Başıma da geldi, bir çok yöntem denedim, çözmeyi başardım. Adımlar oldukça basit. Ufaktan başlarsak şöyle olur:
-Veri tabanına bağlandığı yerde PHP'de şu komutları kullanın:
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
komutlarını ve tüm tablolarda utf8_general_ci karakterini kullanın. Bunu phpMyAdmin üzerinden yapabilmeniz mümkün. Sorun yaşamamanız için her şeyin karakter seti aynı olmalı. Yani UTF-8 olursa rahatlarsınız. Peki nedir her şeyden kasıt olan şey? Veritabanı, html dökümanları, php dosyaları ve dil kodlamaları. Ufak bir örnek vermek gerekirse:
Html döküman karakter seti şunun gibidir:
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
Php dil dosyalarında zaten en yukarıda anlattım. Panelden de UTF-8 olmalı. Aksi halde çoğu kimse sorun yaşamıyor. Yaşayanı da görmedim henüz. - Eğer olmuyorsa, şunu denemenizde fayda var.
BigDump işi kolaylaştırıyor. Kısaca anlatmak gerekirse
Ilk önce buradan uygulamayı indirin. Ardından içindeki bigdump.php dosyasını not defteri ile açın (veya farklı bir editör de olabilir). Database configuration kısmını kendinize göre düzenleyin. Şöyle, $filename = ''; yazılmış olan yere sql dosyanızın ismini yazın (çift tırnakların arasına), ardından $db_connection_charset = ''; yazılmış olan yere latin5 yazın (yine çift tırnak arasına) ve bunları kaydedin. Ardından FTP'ye girip yeni bir klasör oluşturun, bigdump.php ve sql dosyanızı aynı klasöre atın ve araç çubuğuna adresi yazarak (bigdump.php'nin yolunu) çalıştırın. Çalıştırdıktan sonra sql dosyası yüklenmiş olacak. Ancak ufak bir ayar daha var. phpMyAdmin'den Collaction düzenlemesi var. Collaction kısmının da latin5 kalması gerekiyor aşağıdaki gibi:
Bunu da phpMyAdmin'den Işlemler kısmından, tabloyu düzenle kısmına tıklayın, ardından karakteri latin5 yapın (değilse tabii), bu kadar.
Bunların ardından pek sorun çıkartabileceğini sanmıyorum. Eğer olursa da MySQLDumper uygulamasını deneyin. Netice itibariyle işlem şu hale gelmeli:
Farklı bir sorun çıkarsa veyahut çözümler olmazsa, buraya bildirmeniz yeterli olacaktır.
Kolay gelsin,
Recep.
Mesaj 01.12.2013 23:48:14 tarihinde Rserit tarafından düzenlenmiştir.