• ベストアンサー

CGIのテキストが文字化けします。

PERL/CGI大全555という本についていたCDからスクリプトをコピーしましたが日本語が妙なカタカナに文字化けしていて使えません。スクリプトはウィンドウズ用とユニックス用がありWIN2000を使っているのでウィンドウズ用を開いているのですがだめです。何か考えられることはありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • the845t
  • ベストアンサー率33% (246/743)
回答No.3

$ENV{'REMOTE_ADDR'} あと、EOLの後に改行がないとか。

yuki0909
質問者

お礼

ありがとうございました。やっとできました。

その他の回答 (3)

  • me_no_car
  • ベストアンサー率24% (22/90)
回答No.4

多分これが原因でしょう。 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)
回答No.2

公式サイトより引用。 > 2002年4月12日(金)20:56:23 > >  Perl/CGI逆引き大全に一部ミスタイプが、ありました。 >お買い上げの皆様には、大変ご迷惑をお掛けしますが、 >巻末記載のURLまで、アクセス願います。 >正誤表を、用意致しました。 > >お知らせ頂いた、読者様には感謝申し上げます。 参考になりますでしょうか? また、補足要求として、どの時点で文字化けするのですか? CGIが吐いた文章が文字化けするのでしょうか? それともスクリプト自体をTEXTエディタで開いた時に文字化けするのでしょうか?

yuki0909
質問者

補足

このスクリプトを実行したいのですが。 ファイル名は 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)
回答No.1

考えられることとして、 そのスクリプトがEUCで書かれていて、 開いたソフトが EUCに対応していないのではないでしょうか。 例えばEUCで書かれたファイルはメモ帳では読めません。 sakuraなどフリーのテキストエディタを利用されると良いと思います。

関連するQ&A