Json Encoding не удается из-за странных символов. Escaping с $pdo-> quote ($ data) не работает

-4

Я запрашиваю базу данных, а затем я хочу кодировать в json ответ.

Из-за двух полей, "имя" и "описание", которые содержат некоторые жуткий символ, кодировка json не преуспевает.

После кодирования массива, полученного из базы данных, json имеет длину всего 4 символа.

Если я не запрашиваю из базы данных таблицы "имя" и "описание", которые содержат эти очень странные символы, все работает. Я могу кодировать массив, а затем использовать его.

Я попробовал $pdo-> quote ($ data [name]) и $pdo-> quote ($ data [description]), экранирование завершено, но проблема не решена. Json все еще испорчен теми странные символы.

Любая идея о том, что может произойти?

спросил(а) 2014-09-17T19:34:00+04:00 6 лет, 1 месяц назад
0
91

Я починил это. Я должен был установить кодировку соединения db:

try {
$pdo = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo -> exec('SET NAMES utf8'); // FIX

}
catch( PDOException $excepiton ) {
echo "Connection error :" . $excepiton->getMessage();
}
?>

ответил(а) 2014-09-17T20:07:00+04:00 6 лет, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема