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

Go Yoshiwara

Go Yoshiwara

// フォームで入力されたテキストを入れる
$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サイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

1982年生まれ。信濃中学校卒業。フリーターとして23歳まで様々な職業に従事し数々のスキルを身につける。ウェブデザイナーとして活躍したのち、25歳で起業し代表取締役に就任(会長を経て2022年に退任)。自然あふれる場所で生まれ、アウトドアスポーツをして育ったが故にITの道を志したが、近年、再びアウトドアな環境、遊び、生き方を模索して長野県に移住。わくわくするものをつくり続けていたい。

このメンバーの記事をもっと読む