Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Strtolower UTF8 Problemi (türkce karakter)

Konu, 'PHP' kısmında cc21 tarafından paylaşıldı.

  1. cc21

    cc21 Üye

    Kayıt:
    24 Mayıs 2007
    Mesajlar:
    94
    Beğenilen Mesajlar:
    0
    strtolower kullanıldığı zaman türkce karakterleri "�� ������" şeklinde gösteriyor. neden böyle olduğu, nerden kaynaklandığı ile ilgili bir fikri olan var mı?
     
  2. SEYRANLI

    SEYRANLI Daimi Üye

    Kayıt:
    30 Aralık 2007
    Mesajlar:
    2,162
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğretmen
    Şehir:
    Ankara
    Direk olarak phpmanualden kopyaladığım bu fonksiyonu kullanabilrisdiniz.

    <?php
    function strtolower_utf8($string){
    $convert_to = array(
    "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u",
    "v", "w", "x", "y", "z", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï",
    "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "ù", "ú", "û", "ü", "ý", "а", "б", "в", "г", "д", "е", "ё", "ж",
    "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы",
    "ь", "э", "ю", "я"
    );
    $convert_from = array(
    "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U",
    "V", "W", "X", "Y", "Z", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï",
    "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж",
    "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ъ",
    "Ь", "Э", "Ю", "Я"
    );

    return str_replace($convert_from, $convert_to, $string);
    }
    ?>
     
  3. cc21

    cc21 Üye

    Kayıt:
    24 Mayıs 2007
    Mesajlar:
    94
    Beğenilen Mesajlar:
    0
    teşekkür ederim!
     
  4. Mustinet

    Mustinet Üye

    Kayıt:
    5 Temmuz 2008
    Mesajlar:
    218
    Beğenilen Mesajlar:
    0
    Meslek:
    Yazılım Geliştiricisi
    Şehir:
    İskenderun
  5. cc21

    cc21 Üye

    Kayıt:
    24 Mayıs 2007
    Mesajlar:
    94
    Beğenilen Mesajlar:
    0
  6. SEYRANLI

    SEYRANLI Daimi Üye

    Kayıt:
    30 Aralık 2007
    Mesajlar:
    2,162
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğretmen
    Şehir:
    Ankara
    Mustinet teşekkür edeirm, benim de daha önce görmediğim veya hiç hatırlamadığım bir fonksiyondu.
     
  7. Echo

    Echo Üye

    Kayıt:
    16 Temmuz 2008
    Mesajlar:
    203
    Beğenilen Mesajlar:
    0
    Şehir:
    Ankara
    tam emin degilim ama bundada türkçe karekter sorunu oldugunu hatırlıyorum. bazı türkçe karekterleri çevirmiyordu sanırım
     
  8. Turkoman

    Turkoman Daimi Üye

    Kayıt:
    23 Mayıs 2008
    Mesajlar:
    1,295
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğrenci
    Şehir:
    Nereye?
    ISS üzerinde PHP 5.1.2 kurulu ve bende undefined function döndürdü. İşimi garantiye alayım diye aşağıdakini yazmıştım kullanmaya devam ediyorum.

    Örnek olsun bulunsun:

    PHP:
    /*
         *
         * UTF8 ile strtolower() fonksiyonu çalışmıyor onun yerine
         *
         */
        
    function str2lower($string){
            
            
    $byk range("A""Z");
            
    $kck range("a""z");
            
    $bir array_combine($byk$kck);
            
    $tr = array('Ç' => 'ç''Ğ' => 'ğ''İ' => 'i''I' => 'ı','Ö' => 'ö''Ş' => 'ş''Ü' => 'ü');
            
    $TR_tr array_merge($bir$tr);
            
            
    $this->ystring strtr($string$TR_tr);
            
            return 
    $this->ystring;
        }
     
  9. I-TECH-INN

    I-TECH-INN Daimi Üye

    Kayıt:
    8 Mayıs 2008
    Mesajlar:
    552
    Beğenilen Mesajlar:
    0
    Şehir:
    Karşıyaka
    Bir başka yol ise benden gelsin
    PHP:
    <?php
    function tr_strtolower($metin) {
        
    $metin strtr($metin"IĞÜŞİÖÇ""ığüşiöç");
        return 
    strtolower($metin);
    }

    # Örnek Kullanımı
    echo tr_strtolower("ÖRNEK TÜRKÇE METİN");
    // örnek türkçe metin
    ?>
     
  10. Mustinet

    Mustinet Üye

    Kayıt:
    5 Temmuz 2008
    Mesajlar:
    218
    Beğenilen Mesajlar:
    0
    Meslek:
    Yazılım Geliştiricisi
    Şehir:
    İskenderun
    Evet UTF-8 olarak kullanınca bazı Türkçe karakterlerde sorun oluyor. Aşağıdaki gibi kullanınca sorunsuz çıktı alınabiliyor..

    PHP:
    <?php
    $str 
    "PINAR'IN ÇOK SEVDİĞİ küçük BİR KUZUSU VAR.";
    $str mb_strtolower($str,'ISO-8859-9');
    echo 
    $str
    ?>
    Fonksiyonun aktif olmadığı sunucularda, php.ini dosyasında ki ilgili satırı aşağıdaki gibi düzenleyerek kullanabilirsiniz.

    [PHP_MBSTRING]
    extension=php_mbstring.dll