私は試した:
mb_strlen('普通话');
strlen('普通话');
どちらも 9 を出力しますが、実際には 3 文字しかありません。
文字数の正しい数え方は?
mb 文字列拡張機能にアクセスできない場合は、これも機能します (そして、より高速であると思います)。
strlen(utf8_decode('普通话')); // 3
1 つの漢字は 1 つの ASCII 文字に等しくありません。文字列が UTF-8 でエンコードされている場合、mb_strlen はマルチバイト文字をカウントする正しい方法です。
ここを参照してください: http://www.herongyang.com/PHP-Chinese/Multibyte-UTF-8-mb_strlen.html