Функция substr() и UTF-8

После перевода своего движка на utf я понял что и там не все гладко..
Делал выборку записей из бд в сокращенной виде с помощью функци substr(), и в половине случаев получал на месте обрезания знак вопроса в ромбике. Спасла функция mb_substr

echo mb_substr('текст на русском языке',0,20,'UTF-8');

и ромбиков нет! Пользуйтесь, господа.