phpBB、とてもすばらしいソフトウェアではあるんですが、ユーザー名に0xA0を含む文字を指定すると受け付けてくれないというなにやらバグらしきものを発見してしまいました。コードを解析してみると、functions_validate.phpというファイル内に

if (strstr($username, ‘”‘) || strstr($username, ‘"’) || strstr($username, chr(160)))

{

return array(‘error’ => true, ‘error_msg’ => $lang[‘Username_invalid’]);

}

こんな表記があるじゃないですかぃ!ここのchr(160)ってのが悪さをしていたんですね。納得…、、、と言いたいところですが、chr(160)って何のシーケンス文字なんでしょうか??コンパイラ開発をしていると、文字列解析でこれに似たような処理をするんで、ただ単に削ってしまってはヤバいような気もします。phpBB開発者の方は、chr(160)という文字をフラグ文字として使っているのかもしれません。

とにかく、こいつをクリアするか、ひらがなの「あ」など、0xA0を含む文字の入力を、ユーザー名に限り諦めてもらうしかないみたいです。

これは推測なんですが、0xA0という文字コードは、別名でALT-255なんて呼ばれる隠し文字コードらしいです。このALT-255ってやつをファイル名にして繁殖するウィルスがいるようで、もしかしたらこのウィルスに対抗するためのコードなのかもしれません。

とにかくもうちょっと調べてみます。。。