strlen() ermittelt falsche Länge bei Umlauten
Lars
- php
Hallo ihr,
wenn ich einen String habe, wie:
$test = "abcd";
und ihn mit strlen() überprüfe...
echo strlen($test);
Dann stimmt die Angabe, der String ist 4 Zeichen lang. Doch sobald sich ein Umlaut im String befindet:
$test = "äbcd";
... geht strlen() davon aus, es wären 5 Zeichen vorhanden... das gleiche gilt sicherlich für alle Zeichen, die nur im UTF8-Zeichensatz vorhanden sind. Offenbar berücksichtigt die Funktion nicht, dass ein Unicode-Zeichen mehr Bytes verwendet als ein Standardzeichen.
Gibt es eine Möglichkeit, trotzdem die korrekte Länge zu ermitteln?
Grüße
Lars
Hi Lars!
Gibt es eine Möglichkeit, trotzdem die korrekte Länge zu ermitteln?
Du suchst nach mb_strlen().
MfG H☼psel
Hi Lars!
Gibt es eine Möglichkeit, trotzdem die korrekte Länge zu ermitteln?
Du suchst nach mb_strlen().
Lach - hab ich auch grade entdeckt, aber vielen Dank! Auf dieses Forum ist einfach Verlass :-)
Bei mir klappt es jetzt mit:
mb_strlen("äbcd", "utf-8");
Grüße
Lars