このタイトルを書いて、あのことだなとご想像がつく方も多いと思いますが、
まさにその通りのお話です。。。
UTF-8の環境にて、PHPのstrlen関数で文字列のカウントをすると、
全角文字が2バイトではなく1から6バイトとしてカウントされるというものでした。

この開発日誌を読み直してみたところ、1年前くらいにサイトの文字コードを
SJISからUTF-8に変えていたので、この間あちこち不具合あったのだろうな
と恐縮するばかりです。

さて、対処方法ですが、こちらに解説付きでまとめられてますので、
詳しくはリンク先をご確認頂きたいと思いますが、
要はstrlen()を使う時には文字コードをSJISに変えてしまえということでした。


strlen(mb_convert_encoding($text,"SJIS","UTF-8"))

放ったらかしの画像掲示板を少々手入れした際に、
文字カウントがどうもおかしい….と思って気が付いたのですが、
なんともお恥ずかしいお話です。

imgbbs_201109.gif
さて、その放ったらかしだった画像掲示板ですが、
ホント僅かではありますが書き込みもあったようなので、
せっかくですからサブドメイン化をして、ディレクトリと分けてみました。
それに合わせてデザインも少々変え、サイト名も画像掲示板の泉としてあります。
見よう見まねで作った掲示板プログラムですので、まだ不具合多いとは思いますが、
よろしければご利用下さい。

スポンサーリンク