Konuyu görüntüle
IUCODERS FORUM > Programlama > PHP > utf-8 karakter sorunu
Yazar
aliozkn


avatar
Manisa
Kayıt: 13.04.2006
04.06.2008-17:16 #45479
Merhaba,
Yaklaşık 24 saattir karakter sorunuyla uğraşıyorumbeat up
Durum şöyle:
Sayfada hem rusça hem de türkçe karakterleri göstermem lazım,veritabanından (MySql) hem türkçe hem de rusça karakterler geliyor. Ayrıca sayfada echo yla türkçe karakterler yazdırmam gerekiyor.
Veritabanı bağlantısından sonra
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8"); 
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");
olarak verileri utf8 yapıyorum
meta tagından charseti windows-1254 yaptığımda php içinden bastırdığım karakterlerde sorun yok ama veritabanından gelen türkçe ve rusça karakterlerde sorun var.
meta tagını utf-8 olarak ayarladığımda ise sayfa içinden bastırdığım türkçe karakterlerde sorun oluşuyor ve veritabanından gelen türkçe ve rusça karakterler düzeliyor.

Kafayı yemek üzereyim, bir çok kombinasyon denedim ama hepsini birsmile düzgün gösteremedim.

Tavsiyelerinizi bekliyorum.
русский (rusça gösteriyor mu diye merak ettimsmile)









Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
04.06.2008-17:25 #45480
Bunu denedin mi?

header('Content-type: text/html; charset=utf-8');






Let`s make this world a better place to live !

Yazar
aliozkn


avatar
Manisa
Kayıt: 13.04.2006
04.06.2008-17:29 #45482
evet denedim yine sayfa içinden bastırdığım karakterlerde sorun oluyor, vt den gelenlerde sorun yok

utf-8 yapınca da tam tesibeat up








Yazar
halit


avatar

Kayıt: 26.02.2006
04.06.2008-18:08 #45486
bence basit bir sorgu yazıp consoldan dene. consolda sonuçlar düzgün geldikten sonra veritabanından doğru şekilde geliyor demektir. sonrasında browser ayarlarına bakarsın... bir de apachenin configurasyon dosyasında belirli bir dil default olarak seçilmiş olabilir. o zaman sen metaya utf yazmış olsan bile gelen sonuçlar o dilde yazılır utf yazılmaz.





Yazar
aliozkn


avatar
Manisa
Kayıt: 13.04.2006
04.06.2008-18:28 #45487
halit yazdi
 
bence basit bir sorgu yazıp consoldan dene. consolda sonuçlar düzgün geldikten sonra veritabanından doğru şekilde geliyor demektir. sonrasında browser ayarlarına bakarsın... bir de apachenin configurasyon dosyasında belirli bir dil default olarak seçilmiş olabilir. o zaman sen metaya utf yazmış olsan bile gelen sonuçlar o dilde yazılır utf yazılmaz.


php.ini den default u kaldırdım, yani meta lar devrede.
charset utf-8 'e ayarlı iken veritabanından doğru sonuç geliyor (hem rusça hem türkçe) , bu sefer de echo yla yazdırdığım türkçe karakterlerde sorun var (yani aynı sayfada echoyla yazdırdığım türkçe karakterler sorunlu vt den gelen türkçe karakterlerde sorun yok). Bu ikisini kavga ettirmeden aynı sayfada göstermem lazım.
Bu ne yaman çelişki bulamadım, çözemedimsmile .









Yazar
halit


avatar

Kayıt: 26.02.2006
04.06.2008-19:02 #45488
http://tr2.php.net/manual/en/function.mb-convert-encoding.php

şunu bir deneyebilirmisin. belki işe yarar.





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
04.06.2008-22:02 #45501
Editör olarak hangi programı kullanıyorsun? Editörün dosyayı diske yazarken kullandığı encoding sisteminin etkisi olabilir belki.





Let`s make this world a better place to live !

Yazar
aliozkn


avatar
Manisa
Kayıt: 13.04.2006
04.06.2008-22:48 #45506
Herkese çok teşekkürler arkadaşlar bu işi bırakıyorum dermişimsmile

Sorunu

$ad=htmlentities($rs[AD], ENT_COMPAT,"windows-1251");

satır(lar)ıyla çözdüm. Daha kısa çözümlere her zaman açığım.
Herkese iyi geceler.








Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb