if you want to ucfirst for utf8 try this one:
<?php
function ucfirst_utf8($stri){
if($stri{0}>="\xc3")
return (($stri{1}>="\xa0")?
($stri{0}.chr(ord($stri{1})-32)):
($stri{0}.$stri{1})).substr($stri,2);
else return ucfirst($stri);
}
?>
It is quick, not language (but utf8) dependend and does not use any mb-functions such as mb_ucfirst.