• 13-07-2006, 20:39:27
    #1
    Üyeliği durduruldu
    arkadaşlar str_replace fonksiyonunda türkçe karakterleri ingilizce karakterlere dönüştürüyorum fakat bazıları olmuyor sorun neden kaynaklanabilir?

    $catname = str_replace (" ","-",$catname);
    $catname = str_replace ("'","_",$catname);
    $catname = str_replace ("Ç","C",$catname);
    $catname = str_replace ("ö","o",$catname);
    $catname = str_replace ("ü","u",$catname);
    $catname = str_replace ("ş","s",$catname);
    $catname = str_replace ("ğ","g",$catname);
    $catname = str_replace ("ı","i",$catname);
    olmayanlar ş, ı, ğ

    Ş olarak yaptım S'ye çeviriyor ama küçüğünü neden yapmıyor?
  • 13-07-2006, 20:44:14
    #2
    $catname = strtr($catname, "İĞÜŞÖÇığüşöç", "IGUSOCigusoc");
    şeklinde ki bir kodla istediğinizi yapabilirsiniz. Hem sizin koda göre daha hızlı, hem de daha okunaklı
  • 13-07-2006, 20:52:35
    #3
    Üyeliği durduruldu
    fabal adlı üyeden alıntı:
    $catname = strtr($catname, "İĞÜŞÖÇığüşöç", "IGUSOCigusoc");
    şeklinde ki bir kodla istediğinizi yapabilirsiniz. Hem sizin koda göre daha hızlı, hem de daha okunaklı
    evet böyle daha kullanışlı gibi. aynı şekilde diğerleri çalışıyor ama ş, ı, ğ de hala problem yapıyor. küçük ş nin büyük Ş den ne farkı olabilir ki?
  • 13-07-2006, 20:55:19
    #4
    <?
     $catname = "İĞÜŞÖÇığüşöç";
    
     $catname = strtr($catname, "İĞÜŞÖÇığüşöç", "IGUSOCigusoc");
    
     echo $catname;
    ?>
    şeklinde ki bir denemede vermesi gereken 'IGUSOCigusoc' sonucunu verdi. Başka bir yerde hata yapmadığınıza emin misiniz?
  • 13-07-2006, 20:55:42
    #5
    Üyeliği durduruldu
    verdiğin kodu aynı şekilde koyuyorum eğer kategori adını Ş ile yaparsam problem yok. ş kullanırsam çevirmiyor. ben de anlamadım.

    utf-8 şeklinde verdim kategori adını, çevirdi ama bu sefer de sayfada o şekil gözüküyor.

    $catname = str_replace ("ÅŸ","s",$catname);
  • 13-07-2006, 21:23:15
    #6
    Veritabanından aldığın kategori adı iso8859, ama dosyaların UTF8 size bu tür bir sorun çıkabilir. Mümkünse ikiside aynı karakter setinde olsun.

    Eğer veritabanı UTF8, dosyaların iso8859 ise aşağıda ki kodla veritabanından aldığın verileri iso8859'a çevirebilirsin.

    $catname = mb_convert_encoding($catname, "UTF-8", "ISO-8859-9");
    Ama bu kodun çalışması için PHP'de 'mbstring' extensions'ının kurulu olması gerekiyor.
  • 13-07-2006, 21:30:14
    #7
    Üyeliği durduruldu
    fabal adlı üyeden alıntı:
    Veritabanından aldığın kategori adı iso8859, ama dosyaların UTF8 size bu tür bir sorun çıkabilir. Mümkünse ikiside aynı karakter setinde olsun.

    Eğer veritabanı UTF8, dosyaların iso8859 ise aşağıda ki kodla veritabanından aldığın verileri iso8859'a çevirebilirsin.

    $catname = mb_convert_encoding($catname, "UTF-8", "ISO-8859-9");
    Ama bu kodun çalışması için PHP'de 'mbstring' extensions'ının kurulu olması gerekiyor.
    yok vazgeçtim zaten o şekilde çok saçma geldi sonra. en iyisi bu şekilde ama hala anlamıyorum neden çevirmiyor ş yi? ş nin ç den bir farkı varmı acaba?
  • 13-07-2006, 21:31:35
    #8
    chemeng adlı üyeden alıntı:
    yok vazgeçtim zaten o şekilde çok saçma geldi sonra. en iyisi bu şekilde ama hala anlamıyorum neden çevirmiyor ş yi? ş nin ç den bir farkı varmı acaba?
    Bende anlayabilsem söyleyecemde, ben de bir türlü neden çevirmediğini anlamadım
  • 13-07-2006, 21:43:12
    #9
    Üyeliği durduruldu
    google da arama yaparken şununla karşılaştım inceler misin...
    Türkçe Font Problemi
    bu 3 harfde sıkıntı varmış sanırım

    bir de mysql'in latin5_turkish_ci olması gerek tam olarak doğru çalışması için sanırım.
    MySQL Türkçe Karakter Problemi - Günlük Haftalık Aylık