Кодировка Json не работает из-за странных символов. Выход с $ pdo-> gt; quote ($ data) не работает

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

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

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

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

я пытался
$ Pdo-> котировка (данные $ [имя])
а также
$ Pdo-> котировка (данные $ [Описание])
, побег завершен, но проблема не решается. Json все еще запутан этими странными символами.

Есть идеи о том, что может происходить?

-1

Решение

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

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();
}
?>
0

Другие решения

Других решений пока нет …