アプリ版:「スタンプのみでお礼する」機能のリリースについて

BBSの基本的なファイル操作法について教えて下さい。サーバーの文字コードがEUCの場合、CGIに関するスクリプト等はEUCで作成しますが、フォームなどのpost.htmlはSIFT_JISで作成しても文字化け等問題はないものでしょうか?又、投稿文(listとします。)がtop.htmlと言うファイルに書き出されるようなBBSの場合、このtop.htmlファイルはSIFT_JISではなくて、EUCで作成しなければならないのでしょうか?どれをEUCで作成して、どれをSIFT_JISにしたら良いのか?よく分かっておりませんので、そのへんの所を教えてくださいませ。Iモード用のHPでも同じ操作でしょうか?宜しくお願いします。

A 回答 (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に変換して表示するプログラムを用意して、そのプログラム経由でデータを呼び出すようにすれば良いでしょう。
    • good
    • 0
この回答へのお礼

有難う御座いました。形がようやくつかめました。CGIは難しいですが、がんばります。またよろしくお願いします。

お礼日時:2001/03/02 11:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!