• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGIでprint出力時に文字化けします・・・)

CGIでprint出力時に文字化けする原因と解決方法

このQ&Aのポイント
  • CGIでprint出力時に文字化けする原因とは?外国語のようなまったく読めない文字が表示されてしまう現象の解決方法を探しています。
  • print文の中に英数以外の文字が含まれると文字化けする問題が発生しています。正常に表示するためにはどのように対処すればよいのでしょうか。
  • Perlのバージョンは5.6.1で、ファイルはすべてUTF-8で保存しています。ブラウザのエンコードもUTF-8になっています。それにもかかわらず文字化けする現象の解決策をお教えください。

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

  • ベストアンサー
回答No.1

open FILE, "test.txt"; の次の行に、 binmode FILE, ':utf8'; を追加してみてはいかがでしょう。

masa_123
質問者

お礼

ご回答ありがとうございます。 上記の内容で実際やってみたのですが、エラーがでました。 内容は Unknown discipline ':utf8' binmodeで検索し、色々と試してみましたが、うまくいきませんでした。 よろしくお願いします。

その他の回答 (2)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

use utf8; を指定しなければ文字化けせず出力されるでしょう。 UTF-8で保存することと,use utf8; 宣言することは違いますので。 http://okwave.jp/qa4257517.html の私の過去の回答 ANo.2

masa_123
質問者

お礼

ご回答ありがとうございます。 use utf8; を削除して実行したところ文字化けはなくなりました。 ただ、こちらには表記していないのですが、比較などでまったくマッチングしないみたいですね。 大変参考になりました。ありがとうございました。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

>binmode FILE, ':utf8'; > perlのバージョンは5.6.1です。 binmode が第二引数をとるようになったのは5.8以降ですから 質問者さんのこのバージョンではつかえません。

masa_123
質問者

お礼

ご回答ありがとうございます。 Ver5.8を入れて試したところ正常に表示させることができました。 ただprintのところでエラー(Wide character in print...)が出るみたいなので、3行目に binmode STDOUT, ":utf8"; を追加することで正常に表示されました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう