質問

試しました:

mb_strlen('普通话');
strlen('普通话');

どちらも9を出力しますが、実際には3文字しかありません。

文字をカウントする正しい方法は何ですか?

役に立ちましたか?

解決

2番目のパラメーターでエンコードを指定するようにしてください

ie

mb_strlen('普通话', 'UTF-8');

マニュアル

を参照してください。

他のヒント

mb文字列拡張機能にアクセスできない場合、これも機能します(より高速だと思います):

strlen(utf8_decode('普通话')); // 3

1つの漢字は1つのASCII文字と等しくありません。 mb_strlenは、文字列がUTF-8でエンコードされている場合にマルチバイト文字をカウントする正しい方法です。

こちらをご覧ください: http://www.herongyang.com/PHP-Chinese/ Multibyte-UTF-8-mb_strlen.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top