json_encode Türkçe karakter çözümü

Genel Yorum yap

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"}]

“json_encode Türkçe karakter çözümü” girdisine 2 yorum yapılmış

  1. Resul Kaan söyledi:

    tÅŸkler

  2. Ali Arslan söyledi:

    Benim için çok önemli olan bir olayı çözmeme yardımcı oldunuz. Allah razı olsun.

Yorum Yap

WP Theme & Icons by N.Design Studio
Girdi Beslemesi Yorum Beslemesi GiriÅŸ