Merhabalar,
Kendimce bir script yazdım, türkçe karakter kullandığım zaman ? işareti cıkıyor..Bu konuyu baya bir araştırdım çeşitli kaynaklardan. Ama bir sonuca ulaşamadım.
PHP 5 kullanıyorum..
Kendimce bir cok şey denedim..
İlk başta database tablolarımın latin1(default) e göre ayarlandığını düşündüm, ama değiller.
zaten en baştan charsetim <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" /> olarak ayarlı.
Ek olarak sitelerden aldığım bilgilere göre koyu ile yazılmış kodları da denedim sonuc yok.. Bu iş ciddi anlamda canımı sıkmaya başladı.
<?PHP
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to MySQL');
mysql_select_db($dbname, $conn) or die ("Database sec olm");
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
?>
Sitemin son hali:
.Cözüm önerileri olan?
Teşekkürler herkese
acıkcası onu da denedim..ama sonuc vermedi
sayfan utf-8 veritabanı latin5 olduğu için karakterlerin bozuk olması normal.<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
Ya bu karakter setini iso-8859-9 olarak ayarla ya da veritabanını utf8 e çevir.
Bildiğim kadarıyla, latin5 ile uyumlu charset "ISO-8859-9".
Ayrıca sorun sadece bundan kaynaklanmıyorsa;
veri tabanını kontrol ettiniz mi? Karakterler "?" olarak mı kaydedilmiş yoksa doğru mu kaydedilmiş?
Doğru kaydedilmişse
kodlarını sadece kaydederken kullandınız galiba; verileri çekerken de kullanmanız gerekiyor.PHP Kodu:mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
index.PHP deki
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
değerini
<meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-9">
olarak değiştirdim değişen birşey yok
+++++
???Ü?Ai??öçç<br/>
veri tabanındaki kaydı bu, sanırım soru işareti olarak saklanmış
karakter setini değiştirdikten sonra kaydettiğiniz veriler de mi böyle kaydoluyor?
ya zaten SQL deki karakter latin-5
index.PHP deki charset: <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
ben anlamıyorum neden database e ? olarak işleniyor..
show_news.PHP diye bir sayfam var.. Bu sayfada haberler gösteriliyor. İşin ilginc yanı ise show_news.PHP de karakterler cıkıyor
ama onun include olduğu index.PHP de soru işareti olarak cıkıyor..
bakınız eklere
SQL daki karakter seti latin5 ise, sayfada neden utf kullanıyorsunuz?
veritabanında latin5_turkish_ci kullandığınıza göre
sayfada <meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-9"> bu tagı kullanıp,
hem veri girdiğiniz sayfada hemde veri çektiğiniz sayfada
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
kodlarını kullanıp.
yeni girişler yaparsanız, eminim sorun kalmayacaktır.