Skip to content
Advertisement

ucfirst() function for multibyte character encodings

I’ve asked about strtolower function. But when using foreign characters it doesn’t convert them into uppercase, so I must use:

 mb_strtolower($a,"utf8");

But what can I do, if I want to use ucfirst() function? I haven’t found any similar function, where I can set encoding type.

Advertisement

Answer

There is no mb_ucfirst function, as you’ve already noticed. You can fake a mb_ucfirst with two mb_substr:

function mb_ucfirst($string, $encoding)
{
    $firstChar = mb_substr($string, 0, 1, $encoding);
    $then = mb_substr($string, 1, null, $encoding);
    return mb_strtoupper($firstChar, $encoding) . $then;
}
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement