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

С очень странной проблемой столкнулся в PHP.  Надо сделать заглавной первую букву в строке.

Функция PHP – ucfirst(), не помогла. Работает для символов латинского алфавита, но не работает для кириллицы, для русского алфавита.

Решение, которое работает для таких случаев.

if (!function_exists('mb_ucfirst') && extension_loaded('mbstring')) {
    /**
     * mb_ucfirst - преобразует первый символ в верхний регистр
     * @param string $str - строка
     * @param string $encoding - кодировка, по-умолчанию UTF-8
     * @return string
     */
    function mb_ucfirst($str, $encoding = 'UTF-8')
    {
        $str = mb_ereg_replace('^[\ ]+', '', $str);
        $str = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) .
            mb_substr($str, 1, mb_strlen($str), $encoding);
        return $str;
    }
}

И если требуется преобразовать строку, применяем так:

mb_ucfirst('пример');