• 07-04-2021, 10:31:59
    #1
    Aramızdan ayrılanlar
    Merhabalar iyi forumlar , bünyesinde çalışmış olduğum bir dijital reklam ajansıyla beraber bir bot yapıyoruz , hedeflediğimiz siteden çekilen veri utf-8 olarak gelmiyor bundan dolayı veritabanına bozuk bir şekilde kayıt ediyor bu konuda ne yapabilirim yardımcı olursanız çok sevinirim ekteki görsellerle daha iyi anlaşılacağını umuyorum bir kaç method denedim fakat olmadı onları da özet geçeyim.

    Not:site içerisinde gelen veri bozuk gözükmüyor kaynak koduna girildiği zaman karakterlerdeki bozukluk gözüküyor.

    Html'de
    <meta charset="UTF-8">
    kullandım olmadı.
    $baslik = mb_convert_encoding($baslik, 'UTF-8');
    bu kod bloğu ile $baslik değişkenini utf-8 yaptıktan sonra veritabanına kayıt edilsin dedim o şekilde de olmadı.



  • Kabul Edilen Cevap
    • 0 Beğeni
      Arshlenth adlı üyeden alıntı: mesajı görüntüle
      şimdi oldu hocam çok çok teşekkür ederim allah razı olsun , sizi yoruyorum kusura bakmayın hocam son bir sorunum var.

      eğer veri_url veritabanında kayıtlıysa veritabanına kayıt edilmesin olayını nasıl yapabilirim?
      Mysql'de veri_url sütununu UNIQUE olarak ayarlarsanız şu anki haliyle çalışacaktır. Alternatif olarak şunu kullanabilirsiniz:

      if ( $ozet == "Günün gazete manşetleri" ) {
          $durum = 0;
          $durum_name = "kaydetme";
      }
       
       
      $result = $baglan->query("SELECT * from guncel_haber WHERE url = '".$baglan->real_escape_string($veri_url)."'");
      
      if ($result->num_rows == 0) {
      $ekle= "INSERT INTO guncel_haber (baslik,ozet,kategori,url) VALUES ('".$baglan->real_escape_string($baslik)."','".$baglan->real_escape_string($ozet)."','".$baglan->real_escape_string($kategori)."','".$baglan->real_escape_string($veri_url)."')";
       
      if ($baglan->query($ekle) === TRUE) {
          $durum = 1;
      }else {
          $durum = 0;
      }
      }
  • 07-04-2021, 10:35:42
    #2
    mb_convert_encoding($baslik, "UTF-8", "auto");

    şeklinde dener misiniz
  • 07-04-2021, 10:39:16
    #3
    Aramızdan ayrılanlar
    alicemalturan1 adlı üyeden alıntı: mesajı görüntüle
    mb_convert_encoding($baslik, "UTF-8", "auto");

    şeklinde dener misiniz

    şimdi denedim hocam aynı şekilde geliyor

    örnek: Başlık:Bakan Soylu a&ccedil;ıkladı
  • 07-04-2021, 10:42:22
    #4
    Üyeliği durduruldu
    $baslik = html_entity_decode(mb_convert_encoding($baslik, 'UTF-8'));
    İşinizi görecektir diye düşünüyorum.
  • 07-04-2021, 10:42:30
    #5
    Arshlenth adlı üyeden alıntı: mesajı görüntüle
    şimdi denedim hocam aynı şekilde geliyor

    örnek: Başlık:Bakan Soylu a&ccedil;ıkladı
    Belki bu işe yarayabilir
  • 07-04-2021, 10:46:43
    #6
    Aramızdan ayrılanlar
    awoken adlı üyeden alıntı: mesajı görüntüle
    $baslik = html_entity_decode(mb_convert_encoding($baslik, 'UTF-8'));
    İşinizi görecektir diye düşünüyorum.

    hocam ç'ler ğ'ler vs düzeldi bazı kısımlarda sorunu çözdü fakat hala sorunlu kısımlar var

    örnek:"E-imza'yı da inşallah yakın zamanda Türkiye

    örnek de belli olmamış fakat ' işareti kod şeklinde gözüküyor.
  • 07-04-2021, 10:55:03
    #7
    Üyeliği durduruldu
    Arshlenth adlı üyeden alıntı: mesajı görüntüle
    hocam ç'ler ğ'ler vs düzeldi bazı kısımlarda sorunu çözdü fakat hala sorunlu kısımlar var

    örnek:"E-imza'yı da inşallah yakın zamanda Türkiye

    örnek de belli olmamış fakat ' işareti kod şeklinde gözüküyor.
    $baslik = html_entity_decode(mb_convert_encoding($baslik, 'UTF-8'), ENT_QUOTES);
    Bunu deneyin, yine olmazsa kodunuzu paylaşabilir misiniz?
  • 07-04-2021, 10:55:59
    #8
    Basit bir çözüm olacak ama hangi editörü kullandığınızı bilmiyorum ama denediğiniz kodları notepad++ ile işaretli ilgili alanı türkçe karakter setine çevirerek sıfırdan kaydederek deneyebilir misiniz ?

  • 07-04-2021, 10:56:51
    #9
    Aramızdan ayrılanlar
    Konu kilit @awoken; hocam doğru cevabı verdi teşekkür ederim.
    Bu konuda bana yardımcı olan kişilere r10+'ları gönderdim.