Maxim Mironjuk
-
Juni 09, 2025
Sobald eine Anwendung mit Namen, Kommentaren oder Bio-Texten arbeitet, die Emoji, Umlaute oder nicht-lateinische Schriftzeichen enthalten können, liefern die klassischen PHP-Funktionen strlen() und substr() regelmäßig falsche Ergebnisse, weil sie byteweise statt zeichenweise arbeiten. Selbst die verbesserten mb_*-Funktionen scheitern noch an komplexen Emoji, die aus mehreren zusammengesetzten Unicode-Codepoints bestehen, aber visuell ein einzelnes Zeichen darstellen. Die Symfony String-Component löst dieses Problem mit drei klar abgegrenzten, unveränderlichen String-Klassen, die explizit machen, auf welcher Ebene tatsächlich gearbeitet wird, und dieser Artikel zeigt, wann welche davon die richtige Wahl ist.