v2.5.2
Giriş yap

PDO türkçe karakter sorunu

webman
1,600 defa görüntülendi

Çıldıracam :(

Veritabanında türkçe karakterlerde sorun oldugunu gördüm.
Hepsi utf8_general_ci, satırlarda sütünlarda hepsi bu şekilde..

Hatta utf8_turkish_ci de yaptım olmadı.
Pdo $db altına charsetle ilgili bir sürü kod denedim hala yok. neyi yanlış yapiyorum anlamış değilim. Çıldıracam.

head etiketleri arasında

<meta charset="UTF-8">


HTML

yazdım hala yok.. Yok oğlu yok. :(

<?php
    try {
    $db = new PDO("mysql:host=$servername;dbname=" . $dbname, $username, $password);
    $db->query("SET CHARACTER SET utf8");
    // set the PDO error mode to exception
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>
PHP
<?php
try {
    $db = new PDO('mysql:host=' . $servername . ';dbname=' . $dbname, $username, $password);
} catch (PDOException $e){
    die($e->getMessage());
}
?>
PHP

Lütfen yardımcı olur musunuz?

Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (6)
webman
1425 gün önce

utf8mb4 denemiştim zaten olmadı.

ALTER DATABASE veritabani_adin DEFAULT CHARACTER SET utf8 COLLATE utf8_turkish_ci

de denedim olmadı..

tek çözüm bu aşağıda yazdığım kodlar oluyor.

<?php

$db->exec("SET NAMES 'utf8'");
$db->exec("SET CHARACTER SET utf8");
$db->exec("SET CHARACTER_SET_CONNECTION=utf8");
$db->exec("SET SQL_MODE = ''");

?>

omersrn
1425 gün önce

PhpMyAdmin'i aç, veritabanını seç ve üstten SQL'e tıkla.
Ardından aşağıda ki kodu kendine göre düzenleyip sorgu kısmına gir ve "Gönder" de.

ALTER DATABASE `veritabani_adin` DEFAULT CHARACTER SET utf8 COLLATE utf8_turkish_ci

Umarım sorununu bu şekilde çözebilirsin. Bol şans.

mami
1425 gün önce

mb4 şeklinde dene bakalım charseti 'utf8mb4' yap dene
ayrıca saf pdo kodları olsun. bende denediğimde hata almıştım ve sorun altta query kodları olmasıymış.

webman
1425 gün önce

Yaptım hocam yapmaz olur muyum. İşte çıldırdığım nokta da bu :) aynı yazdığınızı yazdım. Normalde değişkenli şekilde yazmıştım konuda gibi. Sonra bunları mı görmüyor acaba diye tüm verileri sizdeki kod gibi yazdım yok. Nafile. Niye olmadığını bilmiyorum

mami
1425 gün önce

Dostum bu Yazdığın Küçük Kodlar Hikaye... $db = new PDO("mysql:host=localhost;dbname=test;charset=utf8", "root", "123456");
Şeklinde Yap.

webman
1425 gün önce
<?php

    $db->exec("SET NAMES 'utf8'");
    $db->exec("SET CHARACTER SET utf8");
    $db->exec("SET CHARACTER_SET_CONNECTION=utf8");
    $db->exec("SET SQL_MODE = ''");
    
?>
PHP

bu kod işimi çözdü. O kadar araştırdım. tesadüfen eski sistemde bulunan kodu aldım kullandım oldu. Hayret bişe...