・元の掲示板本体は三河版(あめぞう→サポスク系)をUTF-8に変換したもの。データ等すべて文字コードがUTF-8になっている。
・i.cgiはあめぞう系でよく使われているもの。ただし、Shift-JISでの運用が前提となっている。
・このi.cgiを改造して、utf-8の元ログデータを文字化けなく読み込み、Shift-JISで表示するにはどうすればいいか具体的に教えてください。無改造の現時点で投稿は可能なようです(がテストはご遠慮ください)。しかし、ログが読み込めていません。サーバーはlolipop。
http://bbs.twelve-girls-band.info/amezo/i.cgi
http://bbs.twelve-girls-band.info/amezo/i.txt(中身)
うまくいけばこんな感じになるはず。
http://www.an-donut.com/i.cgi
http://www.mathematik.uni-ulm.de/help/perl5/doc/perljp.html
perljp - 日本語 Perl ガイド
lolipop の Perl が 5.8.0 だということですので、意図的に標準モジュールを削除していなければ、
Encode という標準モジュールで UTF-8→Shift-JIS の変換が出来ます。
具体的には CGI プログラムの最初の方で
-----------
use Encode;
-----------
という行を追加して、ログファイルの読み込んだものを
---------------------------------
from_to($_, ’utf8’, ’shiftjis’);
---------------------------------
といった具合にすれば OK だと思います。
ありがとうございます!
そのままではうまくいきませんでしたが、ふと思いついて
Encode::from_to($_, ’utf8’,’shiftjis’);
とやると、表示はうまくいきました。
その他少しずついじってみます。