YoungYoung

オリジナル&芸能人(主にラルク)のイラストと、レビュー、日記などのごった煮サイト

diary pc&web

CLEVER BBSのUTF-8化

最近ラブログで使ってるape board+のスパムがヒドイ。
でもape board+自体がもう大分古いスクリプトというか、長いこと更新されてないので、変わりになるBBSスクリプトはないかと探してるうちに「CLEVER BBS」というのを見つけた。
スキンファイルの改造の仕方なんかはapeに近いんだけど、apeにはない画像のアップロード機能や記事検索機能、インデックスのHTML出力機能なんかもあったりして、とってもいい感じ。
でも、というか、やっぱり、と言うべきか、問題になるのが文字コード。
サイト内文字コードをUTF-8にしたいがこのスクリプトはSHIFT-JISのみの対応。
でも前にapeboard+のUTF-8化したときと同じような感じでこれも出来るんじゃないか?と思ったのでこちらのページを参考にしつつやってみたら出来た。
→こんな感じ(実際稼働してるBBSですのでテスト書き込みはご遠慮下さい)
誰かの役に立つかもしんないから、手順を記録のために書いておきます。
でも上手く動かなかった場合でも私にはサポートするほどのスキルがないので、あくまで自己責任(便利な言葉)でお願いします。
サーバーのperlのバージョンが古いと動かないかも知れません。(Perl 5.8.3で動作確認)

1:スキンHTMLファイル2つのcharsetを
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
にして、文字コードをUTF-8に変更して保存。
2:clever.cgiで
charset=Shift_JIS
を指示してる部分を
charset=utf-8
に変更。(3箇所あるはず)
3:clever.cgiのjcode.plを使用している行を変更。
require './jcode.pl';
を↓こんな感じに。
# require './jcode.pl';
use Encode::Guess qw/ shiftjis euc-jp 7bit-jis /;
use Encode qw/ from_to /;

4:同じくclever.cgiで、
&jcode'convert(*val, "sjis", "", "z");
の行を以下のように変更。
#&jcode'convert(*val, "sjis", "", "z");
my $enc = guess_encoding ( $val );
if ( ref $enc ) { from_to ( $val , $enc->name , 'utf8' ); }

5:同じくclever.cgiで、
&jcode'convert(*MailSub,'jis');
&jcode'convert(*MailBody,'jis');

の部分を以下のように変更。
#&jcode'convert(*MailSub,'jis');
from_to ( $MailSub, 'utf8' , '7bit-jis' );
#&jcode'convert(*MailBody,'jis');
from_to ( $MailBody, 'utf8' , '7bit-jis' );

6:cgiファイル2つとdatファイルの文字コードをUTF-8Nに変更して保存。

これで多分動くはず。
間違ってたらどなたかフォローしてください(^_^;

-diary, pc&web