Mar 03
Bilindiği üzere artık bir çok uyumluluk sorununu aşmak için karakter kodlaması olarak UTF-8 kullanmak gerekiyor.
json_encode fonksiyonuna ANSI kodlanmış Türkçe karakter gönderildiğinde fonksiyon hata verip ilgili girdiyi dönüştürmüyor. Bunun nedeni json_encode sadece UTF-8 karakter kodlamasının desteklemesi.
Bunun çözümü aslında çok kolay iconv kullanmak.
Yeni fonksiyon;
1 2 3 4 5 6 7 8 9 10 11 | function jsn_encode($array,$input="ISO-8859-9") { function encode(&$item, $key) { global $input; $item = iconv($input,"UTF-8",$item); } array_walk_recursive($array, 'encode'); return json_encode( $array ); } |
Örnek kod;
1 2 3 4 5 6 | $array[] = array('1' => 'ĞÜŞİÇÖ'); $array[] = array('2' => 'Yazı'); $array[] = array('3' => 'Türkçe'); echo jsn_encode($array); |
Çıktı
1 | [{"1":"\u011e\u00dc\u015e\u0130\u00c7\u00d6"},{"2":"Yaz\u0131"},{"3":"T\u00fcrk\u00e7e"}] |
21 Mart 2011 saat 14:56
tÅŸkler
24 Ocak 2012 saat 01:50
Benim için çok önemli olan bir olayı çözmeme yardımcı oldunuz. Allah razı olsun.