プロが教えるわが家の防犯対策術!

CGIについては、何度か設置はしたことありますが、
プログラムについては全くわかりません。
いつもフリーのCGIスクリプトをDLして使用しております。

今回も、フリーのCGIスクリプトを利用していますが
いくら試してもエラー500 Internal server error
になってしまって困っています。

もちろん、perlのパスも間違えはなく、
ディレクトリ、ファイル共にパーミッションの設定済です。
アスキー/バイナリーも注意して転送しています。

転送にはMacで主流のFetch 3.0.3J2を使用しており、
[カスタム]-[初期設定]-[Misc]の中にある
「ISOコードを変換する」にチェックを入れて転送すると
不思議とエラー500は出ずにCGI実行可能になります。
ただし、ISOコード変換しているので当然文字化けします。

サーバーの問題かとも思い、いくつかのCGIを試しましたが
S-JISのCGIで同じ症状が出るものもあれば
正常に動作するものもありました。
CGIはカスタムしていないので、転送時の問題か
ファイル形式の問題のような気がします。

普通に転送すると実行できなくて、
ISOコード変換で転送すると実行できるCGIというのは
何が問題なのでしょうか?
元のファイルの日本語コードや改行コードの問題、
Macのリソースフォークの問題などあると思いますが
何をチェックすれば良いかわからず困っています。
情報をお持ちの方、助けてください。お願いします。

A 回答 (2件)

> 他のShift-JISのCGIが問題なく動作するサーバーでも


> Shift-JIS対応ではないということなのでしょうか?

Shift-JISの中に問題を起こす文字が存在するということです。
Shift-JISを使っていても問題を起こす文字を含んでいなければ非対応環境でも正常動作します。なので動いたからといって対応しているという証明にはなりません。

> 逆に言い換えると、Shift-JIS未対応のサーバーでも
> Shift-JISのプログラムは動作することがあるのでしょうか?

同上です。

> また、プログラムの文字コード変換というのは
> プログラム自体を全く別ものに書き換えなくてはならないのでしょうか?

原則はその通りです。

> 何かソフトで一発変換・・・なんていうワケにはいかないですよね、、、?(^^;)

コメント行(1行目以外の行で先頭に#の付いている行)以外に日本語が使われていないのであれば、MacだとJ-editなどでEUCなど別の文字コードで変換しなおしたり、文字コード変換専用のフリーソフトもありますので、それで一発変換できます。また、コメント行にしか日本語が使われていないのなら、読みにくくなりますが、行自体や日本語部分を全部削除してしまっても動作すると思われます。

それ以外の場合はスクリプトの改造が必要です。
    • good
    • 0
この回答へのお礼

引き続き、ご回答ありがとうございます。

コメント行がエラーを出す原因になるとは・・・(^^;)
掲示板の設置なので、コメント行以外にも日本語があり
私には手が追えないものだとわかりました。
EUCで書かれているスクリプトを探して試そうと思います。

お礼日時:2002/07/28 14:01

この問題は古来より、何故インターネットでShift-JISが嫌われてきたのかを考えてみるとわかります。



具体的な説明は割愛しますが『こういう事があるから』が理由です。

実行環境や実行用のインタープリタがShift-JISに対応していない場合、Shift-JISの中に誤動作を起こす文字コードがあるからです。


ということで、Hiromunさんのローカル環境には恐らく問題は無く、プログラムの文字コードを変更するか、サーバーをShift-JIS対応にしないと解決しないと思われます。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

他のShift-JISのCGIが問題なく動作するサーバーでも
Shift-JIS対応ではないということなのでしょうか?
逆に言い換えると、Shift-JIS未対応のサーバーでも
Shift-JISのプログラムは動作することがあるのでしょうか?

また、プログラムの文字コード変換というのは
プログラム自体を全く別ものに書き換えなくてはならないのでしょうか?
何かソフトで一発変換・・・なんていうワケにはいかないですよね、、、?(^^;)

お礼日時:2002/07/28 12:05

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