mb_strlen() 関数で文字数を取得できます。
1 | echo mb_strlen('ばけものがたり'); |
通常はこれで7と出力されますが、場合によっては17と出力する場合があります。原因は PHP の内部エンコーディングと文字列のエンコードが違うからみたいです。
参考: mb_strlen()関数の落とし穴 – PHP TIPS:ITpro
この場合は第2引数に文字エンコードを指定することで、解決します。
1 | echo mb_strlen('ばけものがたり', 'UTF-8'); |
マルチバイド文字をなんかするときは、文字コードには絶対気をつけなければいけませんね。
コメント