- 2011年9月26日 08:14
- 開発関連
このタイトルを書いて、あのことだなとご想像がつく方も多いと思いますが、
まさにその通りのお話です。。。
UTF-8の環境にて、PHPのstrlen関数で文字列のカウントをすると、
全角文字が2バイトではなく1から6バイトとしてカウントされるというものでした。
この開発日誌を読み直してみたところ、1年前くらいにサイトの文字コードを
SJISからUTF-8に変えていたので、この間あちこち不具合あったのだろうな
と恐縮するばかりです。
さて、対処方法ですが、こちらに解説付きでまとめられてますので、
詳しくはリンク先をご確認頂きたいと思いますが、
要はstrlen()を使う時には文字コードをSJISに変えてしまえということでした。
strlen(mb_convert_encoding($text,"SJIS","UTF-8"))
放ったらかしの画像掲示板を少々手入れした際に、
文字カウントがどうもおかしい....と思って気が付いたのですが、
なんともお恥ずかしいお話です。

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

- Newer: .htaccessで301リダイレクトとh1タグ
- Older: 10年目突入です
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- http://www.dtn.jp/mt/mt-tb.cgi/129
- Listed below are links to weblogs that reference
- PHPのstrlen() from dtn開発日誌