Arkadaşlar merhaba,
Yazmaya çalıştığım bir projem var. Bu projede verileri Türkçe olarak siteden alıp echo ile Ekrana Türkçe yazdırabiliyorum.
Ancak PDO ile mysql e gönderirken karakterlerde değişmeler bozulmalar oluyor.
Biliyorum bunu hakkında çok fazla kaynak var, bir çoğuna da baktım. Hemen hemen hepsini denedim ancak başaramadım.
Veritabanlarım,tablolarım utf_turkish_ci dil kökenine ayarlı.
Aşağıdaki kodu php dosyasına eklediğimde yine bir sonuç elde edemedim.
$pdo = new PDO("mysql:host=$host;dbname=$db1",$user,$pass);
$pdo->exec("SET NAMES 'utf8'; SET CHARSET 'utf8'");
ş, ğ harflerinde sorun yok garip bir şekilde. Ancak Ç ç Ü ü Ö ö harflerinde sorunlar yaşıyorum.
Yardımcı olabilecek varsa çok sevinirim.
MYSQL Türkçe Karakter Problemi
14
●2.447
- 28-12-2018, 00:05:58$db->query("SET NAMES 'utf8'");
$db->query('SET CHARACTER SET utf8'); - 28-12-2018, 01:40:05Aklima hemen gelenler sunlar.
1-veriyi aldigin sitenin karakter kodu
2-veriyi aldiktan sonraki yaptigin veri tipi degisimlerinde olusabilecek kodlama degisikligi
3-veri tabanindaki karakter ve karsilastirma kodu.
-baslangis olarak sondan baslardim. Veritabanini multi-byte olarak yapki, Aklindaki sorulari silebilesin.
CHARSET=utf8mb4 COLLATE=utf8mb4_bin
- veriyi alirken ve gonderirken ki kodlarini bizimle paylas. bir decode yada encode var mi onlara bakalim.
- Veriyi aldigin sitenin dil kodunu sanirim paylasmissin. - 28-12-2018, 06:25:041.) Veritabanını ve içindeki tabloları utf8_general_ci olarak değiştir.
.
2.) Yazı ekleme yaptığın ve echo yaptığın sayfaların <head> taglarının arasınada <meta charset="UTF-8" /> bunu koy.
3.) Yazı ekleme işlemini yapan php dosyasını UTF-8 olarak kaydet.
Bu şekilde yaptığın zaman eklediğin yeni kayıtlarda sorun çıkmayacaktır, kolay gelsin.
. - 28-12-2018, 10:58:32MythDev adlı üyeden alıntı: mesajı görüntüleDesignX adlı üyeden alıntı: mesajı görüntülenekadar adlı üyeden alıntı: mesajı görüntüleblack_scorpion adlı üyeden alıntı: mesajı görüntüleSalihweb adlı üyeden alıntı: mesajı görüntüle

Arkadaşlar chrome da ekrana yazdırdığım zaman normal çıkmasının sebebi UTF 8 olarak dönüşmesi sanırım.
Ancak ekrana utf 8 olarak yansıyıp, veritabanına utf 8 gönderemedim mi onu bilmiyorum.
Ş İ ve ı harfleri gözüküyor. Ancak Ç ve Ü harflerinde sorun var. Bir türlü anlayamadım. Dediklerinizi yaptım ancak sonuç aynı
Ne yapmalıyım - 28-12-2018, 11:15:06<?php
header('Content-Type: application/json; charset=utf-8');
$conn = mysqli_connect('localhost', 'KULLANICI', 'SIFRE', 'VERITABANI');
if (!$conn) {
die("Baglanamadi: " . mysqli_connect_error());
}
mysqli_query( $conn,"SET NAMES 'utf8' " );
mysqli_set_charset($conn, "utf8");
$sql='sql sorgunu buraya yaz';
mysqli_set_charset($conn, $sql);
======================
sayfani temizle birde boyle dene.
bu arada Trayicida normal ise sorun yok. phpMyAdmin de oyle goruyorsan phpmyadmin i kurcala, veritabani ni kurcala. - 28-12-2018, 11:20:25nekadar adlı üyeden alıntı: mesajı görüntüle

Sorun veritabanında onun farkına vardım da neden olduğunu hala anlayamadım.
Ç ve ü Harflerine ait kodları Ç ve ü harfi ile replace edip değiştirdiğimde ? Soru işareti olarak gözüküyor.
A harfini de ü harfi olarak değiştirdim acaba yanlış mı yapıyorum diye, yine aynı şekilde A olan heryer ? işareti oldu.
Kafayı yemek üzereyim


