• 27-11-2013, 18:28:45
    #1
    Ne yaptıysam olmadı, json ile veri okurken türkçe karakter sıkıntısı yaşıyorum.

    Ç harfini \u00e7 diye gösteriyor.

    Notepad++ ile UTF-8 BOOM'suz yaptım olmadı, UTF-8 yaptım olmadı.
    DB Charset: utf8_turkish_ci.
    utf8_encode(); fonksiyonunu kullandım olmadı. Daha ne yapmalıyım ?
  • 27-11-2013, 18:56:23
    #2
    Verileri kim sağlıyor? Gelen verilerde harf hatası mevcut mu?
  • 27-11-2013, 19:48:08
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    PHP sürümünüz nedir?
  • 27-11-2013, 20:00:09
    #4
    js dosyasını da utf8 olarak kaydettin mi?

    autocomplete eklentisi kullanıyorsan "matchCase: true" olarak ayarla.
  • 27-11-2013, 20:04:09
    #5
    \u00e7 ,\u011f gibi türkçe karekterler unicode'dir. Dönüştürmeniz lazım . Ben genellikle şu fonksiyonu kullanıyorum

    function unicode_decode($str){ 
        return preg_replace("/\\\u([0-9A-F]{4})/ie", "iconv('utf-16', 'utf-8', hex2str(\"$1\"))", $str);     
    } 
    function hex2str($hex) { 
        $r = ''; 
        for ($i = 0; $i < strlen($hex) - 1; $i += 2) 
        $r .= chr(hexdec($hex[$i] . $hex[$i + 1])); 
        return $r; 
    }
    Kullanımı şu şekilde oluyor

    $duzeltilmis = unicode_decode($turkceKarekterli);
  • 27-11-2013, 20:14:24
    #6
    Üyeliği durduruldu
    Json dosyasına doğrudan erişim sağladığınızda zaten karakterleri bu şekilde görmeniz normal.
    jsonu encode ederek kullanan script ekrana düzgün bastırması gerekiyor

    <?php
    $a[]='ıçÇş';
    $b=json_encode($a);
    $c=json_decode($b);
    var_dump($c);
    ?>

    bu kodu calıstırdığınızda tr karakter hatanız yok ise yanlış bir durum yok demektir.

    Kısacası :
    Json dosyasına doğrudan eriştiğinizde gördüğünüz :



    Ekrana basıldığında bu şekilde gözükür :

  • 27-11-2013, 20:27:37
    #7
    Composer kullanmayı biliyorsanız Zend\Json\Decoder::decode() fonksiyonu işinizi görecektir.

    composer.json;
    {
    	"target-dir": "Zend",
    	"autoload": {
    		"psr-0": { "Zend": "" }
    	},
    	"require": {
    		"php": ">=5.3.3",
    		"zendframework/zend-servicemanager": "2.3.*@dev",
    		"zendframework/zend-eventmanager": "2.3.*@dev",
    		"zendframework/zend-serializer": "2.3.*@dev",
    		"zendframework/zend-stdlib": "2.3.*@dev",
    		"zendframework/zend-math": "2.3.*@dev",
    		"zendframework/zend-json": "2.3.*@dev"
    	},
    	"minimum-stability": "dev"
    }
    app.php;
    <?php
    	
    	header("Content-Type: text/plain; charset=UTF-8");
    	
    	require("vendor/autoload.php");
    	
    	$data = array(
    		"member" => array(
    			"nickname" => "saintx",
    			"name" => "Ogün",
    			"surname" => "KARAKUŞ",
    			"age" => 17
    		)
    	);
    	
    	$output = (object) array(
    		"output" => (object) array(
    			"php_function" => (object) array(
    				"encoded" => json_encode($data),
    				"decoded" => null
    			),
    			"zendframework_json" => (object) array(
    				"encoded" => Zend\Json\Encoder::encode($data),
    				"decoded" => null
    			)
    		)
    	);
    	
    	$output->output->php_function->decoded = json_decode($output->output->php_function->encoded);
    	$output->output->zendframework_json->decoded = Zend\Json\Decoder::decode($output->output->zendframework_json->encoded);
    	
    	print_r($output);