読者です 読者をやめる 読者になる 読者になる

Engineer as a Lifestyle @tenkoma

tenkoma's testing blog

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に設定がされていなかった。なるほど。