- ベストアンサー
CGIのテキストが文字化けします。
PERL/CGI大全555という本についていたCDからスクリプトをコピーしましたが日本語が妙なカタカナに文字化けしていて使えません。スクリプトはウィンドウズ用とユニックス用がありWIN2000を使っているのでウィンドウズ用を開いているのですがだめです。何か考えられることはありますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
$ENV{'REMOTE_ADDR'} あと、EOLの後に改行がないとか。
その他の回答 (3)
- me_no_car
- ベストアンサー率24% (22/90)
多分これが原因でしょう。 print <<"EOL"; Content-type: text/html ↓ print "Content-type: text/html\n\n" print <<"EOL"; としてみてください。 CGIで標準出力する時は"Content-type: text/html\n\n"を一番最初に 書くのがお決まりです。 \n\nと改行を2ついれる決まりがあります。
- matsura
- ベストアンサー率12% (1/8)
公式サイトより引用。 > 2002年4月12日(金)20:56:23 > > Perl/CGI逆引き大全に一部ミスタイプが、ありました。 >お買い上げの皆様には、大変ご迷惑をお掛けしますが、 >巻末記載のURLまで、アクセス願います。 >正誤表を、用意致しました。 > >お知らせ頂いた、読者様には感謝申し上げます。 参考になりますでしょうか? また、補足要求として、どの時点で文字化けするのですか? CGIが吐いた文章が文字化けするのでしょうか? それともスクリプト自体をTEXTエディタで開いた時に文字化けするのでしょうか?
補足
このスクリプトを実行したいのですが。 ファイル名は CGI228.pl でアスキーモードで転送し755に変えてあります。 これを実行すると「Internal Server Error」と表示されます。 文字化けはテキストエディタが原因でした。 #!/usr/bin/perlは間違いありません。 #!/usr/bin/perl print <<"EOL"; Content-type: text/html <html> <body> 現在の接続元IPアドレスは<br> $ENV'REMOTE_ADDR'}<br> です </body> </html> EOL
- the845t
- ベストアンサー率33% (246/743)
考えられることとして、 そのスクリプトがEUCで書かれていて、 開いたソフトが EUCに対応していないのではないでしょうか。 例えばEUCで書かれたファイルはメモ帳では読めません。 sakuraなどフリーのテキストエディタを利用されると良いと思います。
お礼
ありがとうございました。やっとできました。