Wie die genaue Anzahl der Mehrbytezeichen zu bekommen?
Frage
Ich habe versucht:
mb_strlen('普通话');
strlen('普通话');
beide Ausgang 9, während in der Tat gibt es nur drei Zeichen.
Was ist der richtige Weg, Zeichen zu zählen?
Lösung
Sie sollten sicherstellen, dass die Codierung im zweiten Parameter angeben
dh
mb_strlen('普通话', 'UTF-8');
Andere Tipps
Wenn Sie keinen Zugriff auf die mb-Strangerweiterung haben dies funktioniert auch (und ich glaube, es ist schneller):
strlen(utf8_decode('普通话')); // 3
Ein chinesisches Schriftzeichen tut, um ein ASCII-Zeichen nicht gleich. mb_strlen ist der richtige Weg, Multi-Byte-Zeichen zu zählen, wenn die Zeichenfolge in UTF-8 codiert.
siehe hier: http://www.herongyang.com/PHP-Chinese/ Multibyte-UTF-8-mb_strlen.html
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow