• 13-07-2009, 22:44:04
    #1
    Arkadaşlar merhaba,

    UTF-8 karakter stilini seçtiğim scriptte link sef sorunu yaşamaktayım. ş,ç,ı,ğ gibi Türkçe karakterleri str_replace fonksiyonu tam olarak dönüştürmüyor.

    Mesela türkiye kelimesi t�rkiye şeklinde çıktı alıyor.

    Veritabanı bilgileri sayfasına

    mysql_query("SET NAMES 'utf8'");
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET COLLATION_CONNECTION = 'utf8_general_ci'");
    şu kodları eklediğimde ise, link sef fonksiyonu Türkçe karakterle karşılaşınca işlevine son veriyor.

    Fonksiyonun tam kodları burada :

    function linksef($baslik) {
    
    $baslik = strtolower($baslik);
    $baslik = str_replace ("ç","c",$baslik); 
    $baslik = str_replace ("ğ","g",$baslik); 
    $baslik = str_replace ("İ","I",$baslik); 
    $baslik = str_replace ("ı","i",$baslik); 
    $baslik = str_replace ("ş","s",$baslik); 
    $baslik = str_replace ("ö","o",$baslik); 
    $baslik = str_replace ("ü","u",$baslik); 
    $baslik = str_replace ("Ü","U",$baslik); 
    $baslik = str_replace ("Ç","c",$baslik); 
    $baslik = str_replace (".","",$baslik); 
    $baslik = str_replace ("Ğ","g",$baslik); 
    $baslik = str_replace ("Ş","S",$baslik); 
    $baslik = str_replace ("Ö","O",$baslik); 
    $baslik = str_replace (" ","-",$baslik); 
    $baslik = str_replace ("'","",$baslik);
    $baslik = str_replace ('"','',$baslik); 
    $baslik = str_replace ("/","",$baslik); 
    $baslik = str_replace ("--","-",$baslik);
    $baslik = str_replace ("---","-",$baslik);
    $baslik = str_replace ("!","",$baslik);
    $baslik = str_replace ("(","",$baslik);
    $baslik = str_replace (")","",$baslik);
    $baslik = str_replace ("{","",$baslik);
    $baslik = str_replace ("}","",$baslik);
    $baslik = str_replace ("?","",$baslik);
    
    return $baslik; }
    Bu sorun konusunda yardımcı olabilecek kişilere şimdiden çok teşekkürler.
  • 13-07-2009, 22:49:53
    #2
    verinin yazıldıgı dosyanın charseti nedir acaba
  • 13-07-2009, 22:54:43
    #3
    Minova adlı üyeden alıntı: mesajı görüntüle
    verinin yazıldıgı dosyanın charseti nedir acaba
    O da UTF-8
  • 13-07-2009, 23:04:02
    #4
    bot filan mı ?
    verilerin (hatanın) olduğu sayfayı örnek verebilirmisiniz,
  • 13-07-2009, 23:09:55
    #5
    uysal_rockci adlı üyeden alıntı: mesajı görüntüle
    bot filan mı ?
    verilerin (hatanın) olduğu sayfayı örnek verebilirmisiniz,
    Hayır bot felen yok yeni yeni yazmaya başladım. Yönetim panelinden eklenen bir içeriğin, başlığına göre link sef fonksiyonuyla linki veritabanına kaydediliyor. Fakat link sef fonksiyonunda karakter sorunu çıkıyor. Örneğin süper kelimesi %EF%BF%BDper (s�per) şeklinde kaydediliyor db'ye.
  • 13-07-2009, 23:16:58
    #6
    verileri post ettiğin ve, gösterdiğin sayfanın karakter setleri aynı mı ,
    hepsi UTF 8 olunca sorun olmaması lazım.
  • 13-07-2009, 23:23:01
    #7
    uysal_rockci adlı üyeden alıntı: mesajı görüntüle
    verileri post ettiğin ve, gösterdiğin sayfanın karakter setleri aynı mı ,
    hepsi UTF 8 olunca sorun olmaması lazım.
    Hepsi UTF-8 tek tek kontrol ettim açıkçası. Linksef fonksiyonunun tam olarak çalışmadığı görünüyor. UTF-8 için elinde sef fonksiyonu olan varsa paylaşırsa bir de onu deniyeyim.
  • 14-07-2009, 01:16:23
    #8
    THR
    Üyeliği durduruldu
    aynı sorun bende de vardı (hoş hala da var) pm den bir kod atıyorum onu bir dene
  • 14-07-2009, 01:22:20
    #9
    veritabanına kaydederken htmlspecialchars dan geçirip daha sonra veritabanından okuyup bir textbox içerisinde falan gösterirken de htmlspecialchars_decode den geçirsen nasıl olur? Bi deneyip yazarsan sevinirim...