• 05-12-2020, 22:54:54
    #1
    Merhaba arkadaşlar,
    Biraz yeniyim bu işlerde. Aşağıdaki kodda ne problem var bilmiyorum ama veritabanına kaydederken Türkçe karakterleri göstermiyor. Neden olabilir? Veritabanına bu şekilde kaydediyor.


    DOSYA OLARAK İNDİRMEK İÇİN;
    https://dosya.co/rpnkgm6a5bmv/EarthQuakeHelper.php.html
  • 05-12-2020, 22:58:22
    #2
    Veri tabanı bağlantısı kurarken utf8 ayarlıyor musunuz hocam ?
  • 05-12-2020, 23:00:59
    #3
    alperdursun adlı üyeden alıntı: mesajı görüntüle
    Veri tabanı bağlantısı kurarken utf8 ayarlıyor musunuz hocam ?
    Tam olarak nasıl bir kod eklemek gerek? Sanırım problem orada...
  • 05-12-2020, 23:01:05
    #4
    hocam veritabanında tablo oluştururken utf8_turkish_ci seçtiniz mi?
    mysql ile bağlantı sağlıyorsanız bağlantınızı yaptıktan sonra
    mysql_query("SET NAMES UTF8");
    kodunu girin. eğer pdo ile bağlanıyorsanız,
    $db->exec("SET NAMES 'utf8'; SET CHARSET 'utf8'");
    kodunu girin
  • 05-12-2020, 23:01:11
    #5
    Kodun çıktısında Türkçe karakter problemi yoksa sorun veritabanı ile ilgilidir. Veritabanına bağlantı kurarken de UTF-8 belirtmeniz gerekir. Veritabanında Türkçe karakter içerebilecek sütunları Yapı bölümünden kodlamasını değiştirebilirsiniz. uft8mb4_general_ci kullanırım ben tablolarda.
  • 05-12-2020, 23:05:23
    #6
    mb_convert_encoding
    Karakter kodlaması dönüşü yapar.

    Sizin kod satırına baktığımızda

      private function file_get_contents_utf8($fn)  
      {        $content = $this->url_get_contents($fn);  
         return mb_convert_encoding($content, "UTF-8", "ISO-8859-1");    }
    ISO-8859-1 'den UTF-8'e döndürüyor ama burada önemli olan gidenin dönüştüreceği kodlama.

    Öncelikle
    SHOW VARIABLES LIKE 'character_set%';
    PHPMYADMIN Üzerinden Karakter kodunuzu bir sorgulayın

    Böyle bir çıktı yerine ISO çıktısı alıyorsanız bağlantı ayarlarını
    mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8');
    olarak güncelleyin.




    Eğer bağlantı ayarınızda charset UTF-8 olarak gözüküyorsa
    ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    Tablolarınızı ve DB'nizi UTF-8 olarak güncelleyin.

    Bu satırı çalıştırın. Umarım açıklayıcı olmuştur sevgiler.
  • 05-12-2020, 23:07:19
    #7
    trycatchsoft adlı üyeden alıntı: mesajı görüntüle
    hocam veritabanında tablo oluştururken utf8_turkish_ci seçtiniz mi?
    mysql ile bağlantı sağlıyorsanız bağlantınızı yaptıktan sonra
    mysql_query("SET NAMES UTF8");
    kodunu girin. eğer pdo ile bağlanıyorsanız,
    $db->exec("SET NAMES 'utf8'; SET CHARSET 'utf8'");
    kodunu girin
    Bu mu aradığımız yer;
  • 05-12-2020, 23:14:14
    #8
    VSaBaH adlı üyeden alıntı: mesajı görüntüle
    Bu mu aradığımız yer;
    charset turkish_ci
    collation kısmını utf8_turkish_ci
    yapar mısınız hocam. mysql veritabanı tarafında da tabloların charsetini utf8_turkish_ci olarak ayarlayın. problemin çözülmesi gerekiyor
  • 05-12-2020, 23:15:45
    #9
    SarSeoAgency adlı üyeden alıntı: mesajı görüntüle
    mb_convert_encoding
    Karakter kodlaması dönüşü yapar.

    Sizin kod satırına baktığımızda

      private function file_get_contents_utf8($fn)  
      {        $content = $this->url_get_contents($fn);  
         return mb_convert_encoding($content, "UTF-8", "ISO-8859-1");    }
    ISO-8859-1 'den UTF-8'e döndürüyor ama burada önemli olan gidenin dönüştüreceği kodlama.

    Öncelikle
    SHOW VARIABLES LIKE 'character_set%';
    PHPMYADMIN Üzerinden Karakter kodunuzu bir sorgulayın

    Böyle bir çıktı yerine ISO çıktısı alıyorsanız bağlantı ayarlarını
    mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8');
    olarak güncelleyin.




    Eğer karakter kodlaması UTF-8 olarak gözükmüyorsa
    Bu satırı çalıştırın. Umarım açıklayıcı olmuştur sevgiler.
    ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    Çok teşekkürler sorgu bu şekilde çıkıyor. Sanırım sorun görünmüyor dimi?