PHP kennt standardmäßig nicht UTF-8. Es wird davon ausgegangen, dass jede Zeichenfolge ASCII ist, also konvertiert strtolower Bytes, die Codes von Großbuchstaben A-Z enthalten, in Codes von Kleinbuchstaben a-z. Da die UTF-8-Nicht-Ascii-Buchstaben mit zwei oder mehr Bytes geschrieben werden, konvertiert der Strtolower jedes Byte einzeln, und wenn das Byte zufällig einen Code enthält, der gleich den Buchstaben A-Z ist, wird es konvertiert. Im Ergebnis ist die Sequenz unterbrochen und repräsentiert nicht mehr das korrekte Zeichen.
Dazu müssen Sie ändern die mbstring Erweiterung konfigurieren:
http://www.php.net/manual/en/book.mbstring.php
strtolower mit mb_strtolower zu ersetzen oder mb_strtolower direclty verwenden. Auf jeden Fall müssen Sie etwas Zeit investieren, um die mbstring-Einstellungen Ihren Anforderungen entsprechend zu konfigurieren.
Die Unicode-Monster schlägt gefunden! Hier, haben Sie einen Link: http://www.joelonsoftware.com/articles/Unicode.html –
Gibt es sogar so etwas wie Kleinbuchstaben Arabisch oder was auch immer das ist?: P – Fabian
Achten Sie darauf, auch den Content-Type-Header zu senden, in einigen Browsern hat er Vorrang vor dem Meta-Tag. –