PHP 5.2 Versiyonlarda Yaşanan json_encode Türkçe Karakter Problemine Çözüm

Merhabalar


PHP'nin 5.3 altı versiyonlarında json oluştururken json_encode metodununu kullandığımızda için türkçe karakter bulunan alanları boş olarak atıyor. Bu problemi gidermek için kendimiz bir JsonEncode metodu oluşturacağız

		
       function JsonEncode($array){
            // return json_encode(Utf8Json($array));
            return Utf8ToAnsi(json_encode(Utf8Json($array)));
        }

       private function Utf8Json($inArray) {
            
            $newArray = array();
           
            foreach($inArray as $key=>$val) {
                if(is_array($val)) {
                    $newArray[$key] = self::Utf8Json($val);
                } else {
                    $newArray[$key] = utf8_encode($val);
                }
            }
            
            return $newArray;
        }

         private static function Utf8ToAnsi($valor='') {

            $utf8_ansi2 = array(
                "\u00de" =>"Ş",
                "\u00fe" =>"ş",
                "\u00f0" =>"ğ",
                "\u00d0" =>"Ğ",
                "\u00fd" =>"ı",
                "\u00dd" =>"İ", 
                "\u00d6" =>"Ö", 
                "\u00f6" =>"ö",
                "\u00dc" =>"Ü", 
                "\u00fc" =>"ü",
                "\u00c7" =>"Ç", 
                "\u00e7" =>"ç", 
            );

            return strtr($valor, $utf8_ansi2);    
        }
Kullanımı

 	$obj->durum = "1";
    $obj->mesaj = 'Json Başarı İle Oluşturuldu';

	header('Content-Type: application/json;charset=ISO-8859-9');
    echo JsonEncode($obj);

Yorumlar