- ベストアンサー
BBSの基本的なファイル操作法
- BBSの基本的なファイル操作法について教えてください。サーバーの文字コードがEUCの場合、CGIに関するスクリプト等はEUCで作成しますが、フォームなどのpost.htmlはSIFT_JISで作成しても文字化け等問題はないものでしょうか?
- BBSの投稿文がファイルに書き出される場合、そのファイルの文字コードは何を使用すれば良いのでしょうか?EUCとSIFT_JISのどちらを選択すれば良いのかについて教えてください。
- BBSをIモード用のHPで運営する場合、ファイル操作にはどのような注意点があるのでしょうか?BBSのファイルはEUCとSIFT_JISのどちらを使用すれば良いのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
質問文の意味がよくわからないので、Perlスクリプトの一般的な場合として説明します。 C/C++やPHPの場合は話が異なる部分が出てくるので、その場合はその旨書いておいて下さい。 基本的に、HTMLの漢字コードはShiftJISだろうがEUCだろうがブラウザで自動認識しますから、一つのファイルに異なるコードがまぜこぜにならなければ問題はありません。 またCGIプログラムでも、外部から来るデータ(HTMLのFormの入力結果や、データの保存用ファイル)については漢字コードは特に制限はありません。 問題となるのは、CGIプログラムの中に漢字メッセージを埋め込む場合で、この場合はサーバの文字コードに漢字コードを合わせる必要があります。(サーバの標準がEUCになっていたら、プログラム中の漢字コードはEUCで書かなければならない) 実際プログラムを作る際には、HTMLのFormからどのような形で漢字コードが渡されるかは実際にデータを受け取るまでわかりませんから、基本的にFormのデータを受け取ってURL decodeする段階で漢字コードを(jcode.plなどを使い)サーバの内部コードに合わせて変換しておけば、あとはそのまま処理してしまってかまわないはずです。 例えばShiftJISでFormからのデータが渡された場合(サーバはEUC)は、 「ShiftJISで入力→URL decode時にEUCに変換→そのままEUCでファイルに保存」 としておけば、次にメッセージを呼び出すときは、EUCで保存されたファイルをそのまま呼び出すだけで、ユーザーのブラウザ側で漢字コードを自動認識して読めるようにしてくれます。 ただしiモードの場合は、表示するHTMLの漢字コードがShiftJISであることが必要条件になっていますから、iモードの時だけは、EUCをShiftJISに変換して表示するプログラムを用意して、そのプログラム経由でデータを呼び出すようにすれば良いでしょう。
お礼
有難う御座いました。形がようやくつかめました。CGIは難しいですが、がんばります。またよろしくお願いします。