Umlaut-Problem Substring
Häufig stolpert man über kleine Probleme, die einem den Tag richtig versauen können. So auch folgendes Problem:
Für eine Liste von Städten brauchte ich eine Unterteilung nach Anfangsbuchstabe. Um den Anfangsbuchstaben zu bekommen benutzt man substr:
$ort="Fulda"; $anfangsbuchstabe=substr($ort,0,1);//F |
Hierbei wird von dem String „Fulda“ eine Teilmenge abgeschnitten die bei 0 beginnt und ein Zeichen lang ist („F“ – der erste Buchstabe). Habe ich das Ganze nun mit „Überlingen“ versucht, kam immer nur Mist dabei heraus. Ich stellte fest, dass auch ein Ersetzen der Umlaute (Ü -> ü) nicht zum Ziel führte, aber schließlich stieß ich auf Folgendes:
mb_internal_encoding("UTF-8"); $anfangsbuchstabe=mb_substr($ort,0,1); |
ODER auch ohne den Umweg über das mb_internal_encoding:
$anfangsbuchstabe=mb_substr($ort,0,1,"UTF-8"); |
Damit stimmt das Encoding und man kann den Buchstaben wunderbar verwenden.
Nach 3 Stunden hin- und hercodieren bin ich auf deinen Beitrag gestoßen und einfach nur dankbar :-)
Ich bin froh, dass ich helfen konnte!
Vielen dank,
das habe ich gesucht.
:)
Danke! Immer wieder erfreulich, wenn man in den Weiten des Netzes eine Lösung für ein nerviges Problem findet. :)