ucfirst() und UTF-8

Sasser

Erfahrenes Mitglied
Guten Abend!

Seitdem ich meine Webseite auf UTF-8 umgestellt habe, werden "äöü" mit ucfirst() nicht mehr großgeschrieben.

Die Suche erbrachte nur, dass hier die Unterstützung fehlt. Wie kann man dennoch, eventuell mit anderen Funktionen solche Umlaute großschreiben? Oder gibt es irgendwelche Einstellungen, sodass dies auch mit UTF-8 funktioniert?
 
Das PHP-Handbuch gibt eigentlich schon ausreichende Informationen dazu:
http://de3.php.net/manual/de/function.ucfirst.php hat gesagt.:
Beachten Sie, dass die Zeichen des Alphabets abhängig vom Wert des gesetzten locale erkannt werden. Ist der Voreinstellung "C" werden Sonderzeichen wie die deutschen Umlaute (ä, ö, ü) nicht erkannt und daher nicht umgewandelt.
 
Du könntest [phpf]mb_convert_case[/phpf] benutzen:
PHP:
$string = mb_convert_case($string, MB_CASE_UPPER, 'UTF-8');
 
D.h. ich müsste im Server etwas umstellen? Wie stelle ich denn die Voreinstellung um, es kann ja kein zusätzlicher Paramenter übergeben werden.
 
Ok ich werde mir das mal zu Gemüte führen.

Nur mal zum Verständis und für später; Muss ich grundsätzlich bei der Nutzung von UTF-8 auch setlocal() nutzen oder ist das nur ein Behelf!?

Seit der Umstellung auf UTF-8 hatte ich sehr viele Probleme und diese möchte ich bei nächsten Webseiten vermeiden.
 
Man kann so etwas auch viel schöner über die php.ini einstellen, aber auf die hat man meist keinen Zugriff. Ansonsten bietet sich das schon an, wenn man ganz sicher sein will.
 
Ich habe die Einstellung nun vorgenommen und den Webserver neugestartet. Das Problem ist jedoch immer noch das Gleiche!?

Code:
;intl.default_locale = de_DE
 
Zuletzt bearbeitet:
Ich habe es nun mit einer Testdatei versucht mit dem Inhalt:

PHP:
<?php
header('Content-Type: text/html; charset=utf-8');
setlocale(LC_ALL, "de_DE");
echo ucfirst ( "österreich" );
?>

Trotzdem wird der Umlaut am Anfang nicht groß geschrieben. Wenn ich den charset auf ISO umstelle, funktioniert es.
 
Zurück