デジハリ 新しい自分に生まれ変わろう
デジハリ 新しい自分に生まれ変わろう
2008.04.02

mb_strlenで文字をカウントする時の注意点

ゴウ
// フォームで入力されたテキストを入れる
$text = $_POST['text'];

//入力された文字列の長さをカウント
$txt_length = mb_strlen($text);

フォームで入力された文字の長さをカウントしたのですが、マルチバイト文字のカウントが何故か2倍に。

たとえば”あ”と入力すると、2とカウントされる。あれれ?mb_strlenってマルチバイト文字も1個と数えるんじゃなかったの?

エンコーディングが必要でした

// フォームで入力されたテキストを入れる
$text = $_POST['text'];

//入力された文字列の長さをカウント
$txt_length = mb_strlen($text,"utf-8");

第二引数で、utf-8にエンコーディング指定をしてあげたら直りました。

単純な事でしたが、ちょっと躓いたので、メモメモ。