json_encode возвращает значение null даже с решением SET NAMES utf8

Я получаю нулевые результаты после вызова ajax, где значения имеют умляуты. Я попытался исправить это с помощью:

$this->pdo = new PDO('mysql:host=host;dbname=db','user','password',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

Иерархия вызовов заключается в том, что вызов ajax переходит к php-скрипту search.php, в котором хранится объект dbconnection, и именно здесь происходят sql-вызовы. Я также пытался исправить это с помощью utf8_encode, но это не помогло. База данных в кодировке: UTF-8 Unicode (utf8) тоже и версия php 5.4.

В моем локальном апаче у меня нет проблем. Проблема проявляется только на реальной веб-странице.

Что мне не хватает?


person Kingalione    schedule 09.03.2014    source источник


Ответы (1)


Измените умляуты на объекты HTML, используя htmlentities(), затем json_encode().

person Jens A. Koch    schedule 09.03.2014
comment
мне не помогло. Я использовал htmlentities($products); эхо json_encode ($ продукты); а также $products = htmlentities($products); но оба не работали - person Kingalione; 10.03.2014
comment
хорошо, тогда это соединение с базой данных или кодировка, которая не является UTF-8. Проверьте это: stackoverflow.com/a/11413251/1163786 - person Jens A. Koch; 10.03.2014