Hallo Sven,
Alle mb-Funktionen haben einen Parameter, der das anzunehmende Encoding angibt. Wenn man den nicht jedesmal explizit angibt, wäre mindestens das mb_internal_encoding zu definieren. Ansonsten bauen deine mb_strtolower() aus dem "ü" nämlich ein kleingemachtes ISO-8859-1-Ersatzzeichen, weil ISO-8859-1 evtl. Standardencoding ist.
Ich hatte vor einiger Zeit auch schon mal zu einem ähnlichen Thema gefragt:
Worauf bezieht sich denn das "Standardencoding"?
Auf PHP oder auf das Betriebssystem.
Selbst wenn ich den Apache, PHP und alle meine Header bzw. PHP Seiten in UTF8 ausliefere, bringt mit ein echo mb_internal_encoding() immer ISO-8859-1.
vielen Dank und viele Grüße
hawk