• 17-01-2011, 14:14:28
    #1
    alttaki kodları kullandım yaba benzer functionları utf 8 sayfamda tr karakter bozuk çıkartıyor cümledeki tüm harfleri küçültürken tr karakterleri bozuyor. Bunun çözümü nedir.
    ön izleme : �dlek Herifler Sizi D�v�p Uzakla��t�rmal�

    Yapmak istediğim kısaca cümle kücük yada büyük olsun tüm harfleri kücültüp baş harflerini büyültmek tr karakter bozmadan
    class StringCases
    {
     public function strToUpper($value)
     {
     $value = str_replace("ç", "Ç", $value);
     $value = str_replace("ğ", "Ğ", $value);
     $value = str_replace("ı", "I", $value);
     $value = str_replace("i", "İ", $value);
     $value = str_replace("ö", "Ö", $value);
     $value = str_replace("ü", "Ü", $value);
     $value = str_replace("ş", "Ş", $value);
     
     $value = strtoupper($value);
     $value = trim($value);
     
     return $value;
     }
     
     public function strToLower($value)
     {
     $value = str_replace("Ç", "ç", $value);
     $value = str_replace("Ğ", "ğ", $value);
     $value = str_replace("I", "ı", $value);
     $value = str_replace("İ", "i", $value);
     $value = str_replace("Ö", "ö", $value);
     $value = str_replace("Ü", "ü", $value);
     $value = str_replace("Ş", "ş", $value);
     
     $value = strtolower($value);
     $value = trim($value);
     
     return $value;
     }
     
     public function uCaseWords($value)
     
    {
    $value = $this->strToLower($value);
     
    $value = split(" ", trim($value));
     
     $value_tr = "";
     
     for($x=0; $x < count($value); $x++)
     {
     $value_first = substr($value[$x], 0, 1);
     $value_last = substr($value[$x], 1);
     $value_first = $this->strToUpper($value_first);
     
     $value_tr .= $value_first . $value_last ." ";
     }
     
     $value_tr = trim($value_tr);
     
     return $value_tr;
     }
     
    }
    $Tureyen=new StringCases();
    
    echo $Tureyen->uCaseWords("<li>ÖDLEK HERİFLER SİZİ DÖVÜP UZAKLAŞTIRMALI</li>");
    extra olarak alttakileride denedim olmadı
    function uc_words($gelen)
    {
        $kc = str_split('abcçdefghıijklmnoöpqrsştuüvwxyz');
        $by = str_split('ABCÇDEFGHIİJKLMNOÖPQRSŞTUÜVWXYZ');
        $kelime = preg_split('^\s+^si', $gelen);
        foreach ($kelime as $k) {
            $ilk = substr($k, 0, 1);
            if ($ilk == '(' || $ilk == '[' || $ilk == '{') {
                $kx = substr($k, 1, strlen($k));
                $veri[] = substr($k, 0, 1)
                        . str_replace($kc, $by, substr($kx, 0, 1))
                        . substr($kx, 1, strlen($kx));
            } else {
                $veri[] = str_replace($kc, $by, $ilk) 
                        . substr($k, 1, strlen($k));
            }
            unset($ilk, $verix);
        }
        return join(' ', $veri);
    }  
    
    function toUpperCase( $input )   
    {   
    return strtoupper( strtr( $input,'ğüşıiöç', 'ĞÜŞIİÖÇ') );   
    }   
    
    
    
    
    function toLowerCase( $input )   
    {   
    return strtolower(strtr( $input,'ĞÜŞIİÖÇ','ğüşıiöç'));  
     }
  • 17-01-2011, 14:26:02
    #2
    Üyeliği durduruldu
    utf-8'in türkçe karakter kodlamalarını kullanmalısınız.

    Ü <-->Ü
    Ş <-->ÅŸ
    Ğ <-->ÄŸ
    Ç <-->Ç
    İ <-->İ
    Ö <-->Ö
    ü <-->ü
    ş <-->ÅŸ
    ğ <-->ÄŸ
    ç <-->ç
    ı <-->ı
    ö <-->ö

    Bu şekilde deneyin harfleri.
  • 17-01-2011, 14:50:18
    #3
    yellow adlı üyeden alıntı: mesajı görüntüle
    utf-8'in türkçe karakter kodlamalarını kullanmalısınız.

    Ü <-->Ü
    Ş <-->ÅŸ
    Ğ <-->ÄŸ
    Ç <-->Ç
    İ <-->İ
    Ö <-->Ö
    ü <-->ü
    ş <-->ÅŸ
    ğ <-->ÄŸ
    ç <-->ç
    ı <-->ı
    ö <-->ö

    Bu şekilde deneyin harfleri.
    2 farklı şekilde yaptım olmadı.

     
    function utfm($az) {
    $newphrase = str_replace("Ü","Ü",$az);
    $newphrase = str_replace("Ş","ÅŸ",$az);
    $newphrase = str_replace("Ğ","ÄŸ",$az);
    $newphrase = str_replace("Ç","Ç",$az);
    $newphrase = str_replace("İ","İ",$az);
    $newphrase = str_replace("Ö","Ö",$az);
    $newphrase = str_replace("ü","ü",$az);
    $newphrase = str_replace("i","ÅŸ",$az);
    $newphrase = str_replace("ç","ç",$az);
    $newphrase = str_replace("ı","ı",$az);
    $newphrase = str_replace("ö","ö",$az);
    $newphrase = str_replace("ğ","ÄŸ",$az);
    return $az; 
    }
    
    function utfs($az) {
    $newphrase = str_replace("Ü","Ü",$az);
    $newphrase = str_replace("ÅŸ","Ş",$az);
    $newphrase = str_replace("ÄŸ","Ğ",$az);
    $newphrase = str_replace("Ç","Ç",$az);
    $newphrase = str_replace("İ","İ",$az);
    $newphrase = str_replace("Ö","Ö",$az);
    $newphrase = str_replace("ü","ü",$az);
    $newphrase = str_replace("ÅŸ","i",$az);
    $newphrase = str_replace("ç","ç",$az);
    $newphrase = str_replace("ı","ı",$az);
    $newphrase = str_replace("ö","ö",$az);
    $newphrase = str_replace("ÄŸ","ğ",$az);
    return $az; 
    }
    
    echo utfs("ÖDLEK HERİFLER SİZİ DÖVÜP UZAKLAŞTIRMALI")."<br />";
    echo utfm("ÖDLEK HERİFLER SİZİ DÖVÜP UZAKLAŞTIRMALI");
  • 17-01-2011, 15:18:11
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Dil Sorununda En büyük Problemlerden 1 Tanesi Bütün Verilerin Aynı Karakter Setini icermemesi.

    Kontrol Ediniz;

    1. Meta TagLarınızın Kontrolu
    2. İlgili Dosyaninizin dil kodLaması, ( Notepad ile bile actiginizda farkli kaydet dediginizde kodlama kısmını görüceksiniz o kısmını utf8 olarak degistirin hatta daha gelişmiş bir editor ile BOMSUZ olarak kaydediniz.)

    Eğer verilerinizi SQL aracılığı ile alıyor SQL'e iletiyorsaniz yine sayfa kodlaması ile sql kodlamanızın aynı olduğunu kontrol edin bütün bunlara rağmen oLmassa ki oLması lazım atladığınız bir nokta vardır
    aşağıda kodu işlem yapması uzere uyguLayınız.

                mysql_query("SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'");
                mysql_query("SET CHARACTER SET utf8");
                mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");