Содержимое плейсхолдера в неправильной кодировке

Здравствуйте!

Помогите решить проблему, пожалуйста, второй день бьюсь.
На странице существовал вывод через pdopage, все прекрасно работало, но возникла потребность в этот вывод кое что добавить и я сделал этот вывод в плейсхолдер и этот плейсхолдер передаю в снипет.

С полученным плейсхолдером снипет не работал, как в последствии выяснялось, что плейсхолдер приходит в кодировке ASCII.

echo '       Кодировка страницы - '.mb_internal_encoding();
echo '        Кодировка контента - '.mb_detect_encoding($content);
Кодировка страницы — UTF-8 Кодировка контента — ASCII

Проверил
1-БД. Все таблицы utf8_general_ci
2-В конфиге соедиенение с базой тоже UTF-8
3-В настройках сайта тоже стоит UTF-8
4-Хейдеры приходят в браузер тоже в UTF-8

Решить проблему удалось, только если в самом снипете вызывать
$content  = $modx->runSnippet('pdoPage', array( ...
, тогда все в UTF-8, но хотелось бы оставить его вызов в шаблоне.

Думал, что можно решить так
$content = mb_convert_encoding($content, 'UTF-8', 'ASCII');
//и даже так
$content = iconv ( 'UTF-8', 'ASCII//TRANSLIT', $content );
Все равно выдает, что кодировка контента ASCII.

Если в снипете написать
echo '<xmp>';
echo $content;
echo '</xmp>';
То на странице в браузере я вижу нормальный HTML с русскими буквами, хотя если ASCII то должны быть кракозябры.

Казалось бы, что все указывает на то, что как то криво определяет кодировку mb_detect_encoding, но следующие функции и множество вариаций на эту тему всегда выдают FALSE, хотя того что они ищут, там предостаточно (div,href,a)
$skipChars = mb_strpos($content, $findTag, $skipChars,'UTF-8'); 
$skipChars = strpos($content, $findTag, $skipChars);
$skipChars = stripos($content, $findTag, $skipChars);
Опять же напомню, что снипет отлично работает при вызове pdopage непосредственно из самого снипета, что исключает проблемы с ошибками в самом коде снипета.

Идеи закончились.
Прошу помочь, подкинуть идею.
Алексей
16 октября 2016, 08:52
modx.pro
1 052
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0