Как бороться со знаком вопроса в Magento?
Не могу сказать конкретно про magento, но у вас там явно substr по utf-ной строке. Замените на mb_substr.
Обрезать лучше всего до пробела, а так выше правильно сказали это все из-за мультибайтовой кодировки.$text = "Текст который надо обрезать до пробела, очень большой текст бла бла бла";
$text = preg_replace("/^(.{30}[^\,\s]*[\,\s])(.+)$/ui","\\1",$text) ;
echo $text;