• ベストアンサー

[Perl]ファイル出力のエンコード(EUC、SJIS、UTF8)を指定したい

EUCで書かれた文章を読み取ったにもかかわらず、S-JISで出力されます。 これを、任意の文字コードに指定して、出力する方法は無いものでしょうか? ご存知の方、教えてください。 宜しくお願い致します。

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

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

以下のサンプルは、コードをUTF-8 で記述して、標準出力をシフトJISで出力し、EUC-JPでファイルから入力します。 "<:encoding(euc-jp)" は、PerlIO レイヤの指定で、これを変えれば、ファイル出力を任意の文字コードにできます。 binmode STDOUT, ":encoding(euc-jp)"; のような指定もできます。 ---------------------------------------------------------------- use encoding "UTF-8", STDOUT => "Shift_JIS"; open(FH, "<:encoding(euc-jp)", "EUC.txt"); while(<FH>){ print ; } close(FH);

mai_540903
質問者

お礼

回答いただきありがとうございます。 とても、参考になりました!

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

Perl 5.8以降なら、プラグマencodingが利用できますので、例えば基本エンコーディングをEUC、出力ファイルハンドルをUTF-8にするといった事ができます。 くわしくはperldoc encodingをどうぞ。 サンプルもいろいろ書かれてます。

参考URL:
http://perl.active-venture.com/pod/perljp.html
mai_540903
質問者

お礼

回答いただきありがとうございます。 とても、参考になりました!

関連するQ&A

専門家に質問してみよう