BBCloneの検索キーワードの文字化け問題がやっと解決できたみたい。
ちなみに、使用しているバージョンは0.48aのUTF-8です。
今まで、ぷちパワ/w.ZeRo ~ BBClone 文字化けその後やWaddle about the Wolrd : bbclone導入不具合などやCornerValley - BBClone のちょっとした手直しを参考にして修正してみていたけど、検索文字列でUTF-8とEUCが混じってると、当然ながらHTMLに表示する時にHTMLのエンコードで選んだ形式しか正しく表示され、修正しきれていなかった。
で、var/last.phpやvar/access.phpを見てみると、UTF-8とEUC-JPが両方用いられて保存されていることが分かった。
というわけで、保存部分のコードが何か悪いんだろうと当たりをつけてソースファイルを見ていたら、怪しげなところを発見。
このサイトのBBCloneはUTF-8で運用しているので、EUC-JPとなっていたところを全てUTF-8に置き換えてみた。
112行目付近
log_processor.php
修正前 if (defined("_BBC_MBSTRING") && (stristr("UTF", $char) || stristr("EUC-JP", $char) || stristr("gb2312", $char))) {
修正後 if (defined("_BBC_MBSTRING") && (stristr("UTF", $char) || stristr("UTF-8", $char) || stristr("gb2312", $char))) {
57行目付近
charconv.php
修正前 if (($from !== false) && defined("_BBC_MBSTRING") && ((strpos($to, "iso-8859-") !== false) || ($to == "EUC-JP") ||
修正後 if (($from !== false) && defined("_BBC_MBSTRING") && ((strpos($to, "iso-8859-") !== false) || ($to == "UTF-8") ||
これで正しいのかどうかは分からないが、しばらく様子をみている限り、、この修正で今のところ大丈夫のようです。
