v2.5.2
Giriş yap

Php ve json türkçe karakter hatası

webdevyusuf
3,054 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Veritabanımda json verisi tutuyorum ama javascript ile ekliyorum türkçe karakter varsa onu sayıya çeviriyor bence bu javascript ile alakalı nasıl çözebilirim mesela ğ harfi u011f oluyor bunu nasıl çözücem.

Ve birde şu var veritabanından çekiyorum eğer yazı değiştirilirse diye ben yinede ayrı bir şekilde tekrar kaydediyorum. Normalinde bir sorun yok türkçe karakter olarak ama json eklersek javascript ile böyle oluyor.
Örnek: Kuğ
Çıktı: Kuu011f

tayfunerbilen
1444 gün önce

Varsayılan olarak json_encode() fonksiyonu unicode karakterlere dönüştürüyor. Örneğin;

$arr = [
    'name' => 'Çağla'
];

echo json_encode($arr); // çıktı: {"name":"u00c7au011fla"}

$json = '{"name":"u00c7au011fla"}';
$arr = json_decode($json, true);

print_r($arr);
/*
Array
(
    [name] => Çağla
)
*/

Nihayetinde geri diziye çevirdiğinde karakterler orjinaline dönüyor ancak en başta bunu escape etmesin dersen 2. parametreye JSON_UNESCAPED_UNICODE flagını belirtebilirsin;

$arr = [
    'name' => 'Çağla'
];

echo json_encode($arr, JSON_UNESCAPED_UNICODE); // çıktı: {"name":"Çağla"}