こもろぐ @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

広告:本ブログで紹介している書籍等商品の紹介でAmazonアソシエイトを利用していることがあります。

mb_strlen関数

ちょっと悩んだ。

コード

<?php
$str = "あいう";
print "{$str}" . strlen($str) . "バイト, " . mb_strlen($str) . "    文字<br/>\n";

ブラウザ表示

あいうは 9バイト, 9文字

おかしい。「3文字」になるはず…PHP: mb_strlen - Manualを見ると第二引数に文字エンコーディングを指定できるとあるので、「mb_strlen($str, 'utf-8')」とすると、目的の「3文字」が出力された。また、省略されたときは、内部文字エンコーディングが使われる、ともあるが、開発環境のphpinfo()のmbstring.internal_encodingに設定がされていなかった。なるほど。