多言語サイトを受注してしまい
急遽 UTF-8 に対応することになりました
警告
ベースシステムのCGIの文字コードがすべてUTF-8になりますため
これまでCGIをカスタマイズされている場合は、文字化け等が想定されます。
下記の通り対処の準備をおねがいします。
新システムにおけるデータの保存形式
新システムにバージョンアップすると、
コンテンツの編集や設定等を行った場合は、data.datやconf.datなどが
すべてShiftJISからUTF-8に自動変換され、UTF-8で保存されるようになります。
新システムにおけるウェブページの出力形式
新システムには、ファイルの文字コードを自動判別するプログラムが組み込まれています。
仮にデータファイルがShiftJIS形式であれば、これを自動的にUTF-8形式に変換して内部処理を行い、
指定された形式(ShiftJISまたはUTF-8)に変換してウェブページ(HTML)出力を行います。
現行システムでカスタマイズを行っている場合は
現行システムでカスタマイズを行っている場合は、文字化けが発生する可能性は低いですが
index.cgiやmobi.cgiにある
page_readサブルーチン(sub page_read { ~処理ブロック~ })の部分において
文字化けする$変数や@変数に、下記のエンコード処理を1行追加してみてください
# $MenuZoneをutf8からshiftjisへエンコード
Encode::from_to($MenuZone, 'utf8', 'shiftjis');
# @MenuZoneをutf8からshiftjisへエンコード
foreach (@MenuZone) { Encode::from_to($_, 'utf8', 'shiftjis'); }
Encodeモジュールを利用する場合は、
Encode::from_to()構文の直前に
use Encode;
を記述して宣言する必要がありますが、これはAD-EDITのすべてのCGIに記述されているため
記述は不要です。
0 件のコメント:
コメントを投稿