Проблем с енкодинг при извеждане на информация от база данни

Knoppix_

Registered
Здравейте имам проблем ако въведа някаква стойност на кирлица, например Да ми излиза u041fu0435u0442u043au043e на какво може да се дължи преди всяка заявка имам

Код:
   $encoded = json_encode($array);
	mysql_query("SET CHARACTER SET utf8");
    mysql_query("UPDATE `otchet_turcia` SET `paten_list` = '$encoded' WHERE id = $id") or die(mysql_error());
}
 
Когато записваш в базата от данни, кодираш масива с json_encode(). Следователно, когато изваждаш резултата от базата данни трябва да ползваш json_decode().
 
така правя с декоде само че стойноста която извежда е като горе т.е не извежда на български
 
Knoppix_ каза:
така правя с декоде само че стойноста която извежда е като горе т.е не извежда на български

пробвай да сложиш

mysql_query("SET CHARACTER SET utf8");

непосредствено след мястото, където правиш връзка с база данни.
 
Не става
Код:
<?php
$query = mysql_query("SELECT `razhod_tr` FROM `otchet_turcia` WHERE id = $id") or die(mysql_error());
mysql_query("SET CHARACTER SET utf8");	
$row = mysql_fetch_array($query);
$decoded = json_decode($row[0], true); // ако не стане, пробвай $row[0]
?>
 
mysql_query("SET CHARACTER SET utf8");

защо си го сложил след заявката? Сложи го само и единствено там, където правиш връзка с базата данни. Веднага след mysql_select_db.

И файловете ти трябва да са с utf-8 кодировка (notepad++: Encoding->Convert to UTF-8 without BOM) ... не мога да се сетя за друга причина освен тези две.
 
Не става, в документация пише че работи с утф 8 обаче при записа кодира кирлицита, но при декодирането не мисе получава явно нещо
 
Ако си с PHP 5.4+ , пробвай да заместиш

json_encode($array);
със
json_encode($array, JSON_UNESCAPED_UNICODE);


Страницата ти с какъв charset е (в <head>) - там където добавяш и гледаш записа ?

Базата данни с каква колация е?
 

Back
Горе