• 03-10-2017, 22:18:12
    #1
    Merhaba arkadaşlar,

    try {
         $db = new PDO("mysql:host=localhost;dbname=script", "adminf", "sifrem");
         $db->exec("SET NAMES 'utf8'; SET CHARSET 'utf8'");
         
    } catch ( PDOException $e ){
         print $e->getMessage();
    }
    Mysql'de utf8_turkish_ci kullanmaktayım.

    Neden bu şekilde kayıt ediyor?
  • 03-10-2017, 22:26:22
    #2
    SET NAMES değerini utf8 yerine latin5 olarak değiştirip denermisiniz hocam
  • 03-10-2017, 22:26:28
    #3
    Sayfanızın karakter setini kontrol ettiniz mi ?
  • 03-10-2017, 22:42:45
    #4
    ahmet_gs adlı üyeden alıntı: mesajı görüntüle
    SET NAMES değerini utf8 yerine latin5 olarak değiştirip denermisiniz hocam
    Denedim, olmadı.

    FaTe adlı üyeden alıntı: mesajı görüntüle
    Sayfanızın karakter setini kontrol ettiniz mi ?
    Hocam veritabanına kayıt sırasında öyle bozuluyor Türkçe.
  • 03-10-2017, 22:49:28
    #5
    Tamam onu anladım bu php sayfalarının kodlama türü nedir ?
  • 03-10-2017, 23:15:20
    #6
    FaTe adlı üyeden alıntı: mesajı görüntüle
    Tamam onu anladım bu php sayfalarının kodlama türü nedir ?
    UTF8 hocam, orada sorun yok.

    Sorun heralde hosting'de godaddy'den aldım.
  • 03-10-2017, 23:57:52
    #7
    Veritabanı karakter kodlamasını utf8_turkish_ci yerine her zaman utf8mb4_unicode_ci kullanın. İster arapça ister rusça ister türkçe saklarsınız.

    Ayrıca veritabanıyla birlikte bağlantı sırasında da karakter kodunu ayarlamanız gerekir.

    Editor olarak da notepad falan kullanmayın, atom kullanın, phpstorm kullanın, en kötü sublime kullanın.

    Dosya içinde karakter bir kere bozulduysa onu düzeltmek zordur. Bozulmuşsa bu sefer notepad+ ta açıp bomsuz olarak kodla olayını yapabilirsiniz. Ama atom gibi editörler kullanırsanız zaten böyle sorunlarla karşılaşmazsınız.

    Bol şans.
  • 04-10-2017, 02:12:26
    #8
    mpoy8 adlı üyeden alıntı: mesajı görüntüle
    Veritabanı karakter kodlamasını utf8_turkish_ci yerine her zaman utf8mb4_unicode_ci kullanın. İster arapça ister rusça ister türkçe saklarsınız.

    Ayrıca veritabanıyla birlikte bağlantı sırasında da karakter kodunu ayarlamanız gerekir.

    Editor olarak da notepad falan kullanmayın, atom kullanın, phpstorm kullanın, en kötü sublime kullanın.

    Dosya içinde karakter bir kere bozulduysa onu düzeltmek zordur. Bozulmuşsa bu sefer notepad+ ta açıp bomsuz olarak kodla olayını yapabilirsiniz. Ama atom gibi editörler kullanırsanız zaten böyle sorunlarla karşılaşmazsınız.

    Bol şans.

    Bir form ve o formu göndermeye yarayan bir php sayfası bulunuyor.
    Her bakan yazılımcı anlam veremiyor, hosting değiştirdim sorun yine aynı. Kullandığım kodlar yukarıda.

    Farklı bir önerisi olan var mı acaba?
  • 04-10-2017, 03:32:26
    #9
    Üyeliği durduruldu
    1 - Oluşturduğunuz veri tabanının karakter setini UTF-8 general_ci yapın.
    2 - Veri tabanı bağlantı kodunuzu aşağıdaki kod ile değiştirin.
    try {
     $db = new PDO("mysql:host=localhost;dbname=script", "adminf", "sifrem",array(PDO::MYSQL_ATTR_INIT_COMMAND =>"SET NAMES utf8",PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8"));
    } catch ( PDOException $e ){
     print $e->getMessage();
    }