// フォームで入力されたテキストを入れる
$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にエンコーディング指定をしてあげたら直りました。
単純な事でしたが、ちょっと躓いたので、メモメモ。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。