mb_strlenについての疑問


ただの文字列サイズだけでなく、日本語文字列のサイズも取得出来る関数。

使い方は

mb_strlen("サイズが知りたい文字列",
          "エンコード種別");

エンコード種別は指定しなくてもOKだが、出来れば指定した方が良い!という事らしい。

でも、エンコード種別で「UTF-8」を指定した場合と、「EUC-JP」を指定した場合で帰ってくる数値が違ってくるのは一体?
例えば

$test = "テスト文字列";
print mb_strlen($test,"UTF-8");
print mb_strlen($test,"EUC-JP");

とすると1つ目の値は12で、2つ目は11になる。
これはどういうことなんだろう?
当たり前だけど、表示するcharsetを指定しても帰ってくる値は変わらない。

さて、調べてみたいけど判るかな?


Leave a Reply