• ベストアンサー

use encoding を使う

フリーソフトの掲示板ソフト(shift_jis)で encoding を使おうと下記の2行を追加したところ、Internal Server Error になってしまいます。どこに追加しても同じです。 どんな原因が考えられるでしょうか。 use encoding "shiftjis"; binmode STDERR, ":encoding(shiftjis)";

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

use encoding "cp932"; binmode STDERR, ":encoding(cp932)"; にしてみるとか・ あと、他のencoding 指定のモジュールを呼び出しているとか・ perldoc encoding に注意が書いてあるので、一読してみたらどうでしょうか

ni7973
質問者

お礼

皆さんありがとうございました。 私の技量では解決できそうも無いので、encoding を使わない(文字コードを使う)方法で解決しました。

その他の回答 (2)

回答No.2

取りあえずスクリプト上部に use CGI::Carp qw(fatalsToBrowser); と記述してみたらどうなりますか? あと http://www.fl.reitaku-u.ac.jp/~schiba/perl/perlEncoding.html#shiftjis によると、、、この記述をした場合に Shift_Jis以外のテキストが混ざるとエラーになるとのことです。

ni7973
質問者

補足

ありがとうございます。 上の一行を記述しても、問題はおきません。 Shift_Jis 以外のテキストを検出する方法はあるのでしょうか。

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

perlのバージョンが古いのではないでしょうか? 5.8以降か確認してみてください。

ni7973
質問者

補足

v5.8.6です。 作成した、test用のCGIでは問題なく働きます。

関連するQ&A