http://php.net/manual/en/function.strtoupper.php
Цитирам:
Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as umlaut-a (ä) will not be converted.
P.S. Може ето така:
mb_strtoupper('текст на кирилица', 'UTF-8');