Php ve json türkçe karakter hatası
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
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"}