mb_strlen() 関数で文字数を取得する際は第2引数に文字エンコードを必ず指定すること

mb_strlen() 関数で文字数を取得できます。

1
echo mb_strlen('ばけものがたり');

通常はこれで7と出力されますが、場合によっては17と出力する場合があります。原因は PHP の内部エンコーディングと文字列のエンコードが違うからみたいです。

参考: mb_strlen()関数の落とし穴 – PHP TIPS:ITpro

この場合は第2引数に文字エンコードを指定することで、解決します。

1
echo mb_strlen('ばけものがたり', 'UTF-8');

マルチバイド文字をなんかするときは、文字コードには絶対気をつけなければいけませんね。

コメント

コメントは受け付けていません。