• 21-02-2022, 14:38:34
    #1
    Çözüldü

    Merhaba,
    İnternetteki bir sürü yöntemi denedim fakat sonuç alamadım. Yardımcı olursanız sevinirim. Sayfa kodlaması UTF-8.
    Aşağıdaki scriptte baş harf dizisine atadığım harflerden biri, isim listesindeki isimlerden birinin baş harfine eşit ise ekrana yazdırıyor. U girdiğimde doğru çalışıyor, Ü girdiğimde sanki harf girilmemiş gibi davranıyor.

    Dosya şu şekilde:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
        <head>
            <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro' rel='stylesheet' type='text/css'>
            <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta http-equiv="Content-Type" content="text/HTML; charset=UTF-8">
        </head>
            <?
                function Arama($isimListesi, $basHarf)
                {
                    if(empty($basHarf)==false)
                    {
                        foreach($isimListesi as $isim) //baş harf kontrolü
                        {
                            $isim = mb_strtoupper($isim);
                            
                            foreach($basHarf as $harf)
                            {          
                                echo "İsim: ".$isim."<br>Baş harf: ". $isim[0]."<br>İsim encode türü: ".mb_detect_encoding($isim)."<br>Baş harf encode türü: ".mb_detect_encoding($isim[0])."<br><br>";
                            }
                        }
                        
                    }
                    
                }
                
                $basHarfDizisi = array("Ü");
                $isimListesi = array("AYŞE","ZEYNEP","ÜLKER","ULVİYE");
                Arama($isimListesi, $basHarfDizisi);
            ?>    
    </html>
    Ekran çıktısı:
  • 21-02-2022, 14:50:00
    #2
    $isim = strtoupper($isim);
    $isim = mb_strtoupper($isim);
    kodunu değiştirip dener misin.
  • 21-02-2022, 14:52:33
    #3
    verdiğiniz meta kısmındanki charset utf8 kısmını silerek aşağıdaki meta kodunu ekleyerek dener misiniz?
    <meta charset="utf-8">
    • Müneccim
    Müneccim bunu beğendi.
    1 kişi bunu beğendi.
  • 21-02-2022, 15:28:16
    #4
    salihbey24 adlı üyeden alıntı: mesajı görüntüle
    $isim = strtoupper($isim);
    $isim = mb_strtoupper($isim);
    kodunu değiştirip dener misin.
    Düzelmedi malesef.

    Misafir adlı üyeden alıntı: mesajı görüntüle
    verdiğiniz meta kısmındanki charset utf8 kısmını silerek aşağıdaki meta kodunu ekleyerek dener misiniz?
    <meta charset="utf-8">
    Düzelmedi malesef.

    Bu arada asıl problemi fark ettim. İsmi doğru görüntülüyor fakat ilk karakteri isim[0] şeklinde aldığımda onu bozuyor. İlk mesaja ekran çıktısını ekliyorum.
  • 21-02-2022, 16:54:49
    #5
    $isim[0]
    yerine
    mb_substr($isim, 0, 1)
    yazar mısın.
  • 21-02-2022, 18:43:52
    #6
    salihbey24 adlı üyeden alıntı: mesajı görüntüle
    $isim[0]
    yerine
    mb_substr($isim, 0, 1)
    yazar mısın.
    İşe yaradı, teşekkür ederim.