マルチバイト関数の挙動
http://itpro.nikkeibp.co.jp/article/COLUMN/20070307/264117/
内部コーディングによって期待してない数値が返ってくる事があるけど、文字コードを指定する事でなおるらしい。
<?php $str = '日本語にほんご'; var_dump(mb_strlen($str, 'SJIS')); ?>
詰まっていた mb_substr も最後に引数を持たせられる。
<?php mb_substr("aiueo", 2, 2, "utf-8"); ?>
知らなかったー。