Вывод алфавитного списка брендов.

Собственно, имеется родитель «Бренды» с ресурсами брендами. Задача: вывести списки названий ресурсов, разделенных буквенными заголовками (по алфавиту). Написал сниппет. Однако в результате вижу вопросики вместо кириллицы.
Кто нибудь может посоветовать, как состыковать кодировки для нормального отображения русских букв. Код сниппета:
<?php
$objects = $modx->getCollection('modResource',array('parent'=>$parents,'published'=>1)); 
$brends=array();
foreach($objects as $object) {
    $brends[] = $object->get('pagetitle');    
}
sort($brends);
reset($brends);

$words = array();
$i=0;

foreach ($brends as $id=>$brend) {
    if ($id == 0) {
        $words[0] = substr($brend, 0, 1); $i++;
    } else { 
        if( $words[$i-1] !== substr($brend, 0, 1)) {
            $words[$i] = substr($brend, 0, 1);
            $i++;
        } 
    }      
}
$result = "<ul>";
foreach ($words as $word) {
	$result.= "<li><h3>" . $word . "</h3></li>";
	foreach ($objects as $object) {
		if($word == substr($object->get('pagetitle'), 0, 1)) {
			$result.= "<li><a href='/" . $object->get('uri') . "'>" . $object->get('pagetitle') . "</a></li>";
		}
	}
} 
echo $result;
Проблема начинается с массива $words. Вызов
print_r ($words);
вовращает:
Array ( [0] => A [1] => B [2] => C [3] => D [4] => E [5] => F [6] => G [7] => H [8] => I [9] => J [10] => K [11] => L [12] => M [13] => N [14] => P [15] => R [16] => S [17] => T [18] => W [19] => Y [20] => Z [21] => i [22] => � )
Станислав
25 ноября 2015, 12:57
modx.pro
1 786
0

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

Алексей Ерохин
25 ноября 2015, 17:43
+2
mb_substr (multibyte)
    Станислав
    25 ноября 2015, 20:31
    0
    Благодарю за нужное направление. Вначале mb_substr() проблему не решил. Среди причин подозревал версию php (данный глюк был описан здесь) и неподходящие настройки php.

    Проблему решил, указав дополнительный параметр кодировки:
    mb_substr($brend, 0, 1,'utf-8');
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2